0

我试图在鼠标输入JButton. 问题是JButton对象不支持SAMPLE_RATE控件。我能做些什么来改变音高?

(FloatControl.Type.SAMPLE_RATE)
4

1 回答 1

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 事件线程的后台线程中进行音高修改。

于 2013-12-14T15:42:37.650 回答