我正在尝试在鼠标输入JButton
时更改波形文件的音高。
问题是JButton
对象不支持SAMPLE_RATE
控件。
我该怎么做才能改变音高?
(FloatControl.Type.SAMPLE_RATE)
答案 0 :(得分:1)
JButtons当然永远不会支持任意功能,例如它们 - 它们只能做和理解JButton相关的概念,这应该是它应该的。但一切都不会丢失。您可以为JButton的ButtonModel提供一个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的事件线程的后台线程中进行音高修改。