Какие объекты JFrame поддерживают изменение высоты тона?

Я пытаюсь изменить высоту звукового файла, когда мышь вводит JButton, проблема заключается в JButton объект не поддерживает SAMPLE_RATE контроль. что я могу сделать, чтобы изменить высоту тона?

(FloatControl.Type.SAMPLE_RATE)

1 ответ

JButton, конечно, никогда не будет поддерживать произвольную функциональность, подобную этой, - они могут только понимать и понимать концепции, связанные с JButton, и так и должно быть. Но еще не все потеряно. Вы можете присвоить свой ButtonModel JButton элемент ChangeListener, а затем, когда курсор мыши находится над кнопкой, вызвать изменение частоты дискретизации для любого объекта, контролирующего частоту дискретизации. Обратите внимание, что в ChangeListener вы будете проверять isRollover() метод проверки на зависание.

например,

  button.getModel().addChangeListener(new ChangeListener() {

     @Override
     public void stateChanged(ChangeEvent cEvt) {
        ButtonModel model = (ButtonModel) cEvt.getSource();
        if (model.isRollover()) {
           // do something with pitch
        } else {
           // undo something with pitch
        }
     }
  });

Обратите внимание, что вам может потребоваться выполнить изменение высоты тона в фоновом потоке вне потока событий Swing.

Другие вопросы по тегам