Какие объекты 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.