Java:双击 JSlider 重置

标签 java swing reset double-click jslider

我有一个 JSlider 可以设置我的节拍器的速度,从 40 到 200,其中 120 是默认值,在中间。

当用户单击节拍器按钮时,节拍器以 JSlider 上显示的速度播放 - 用户将 slider 向右拖动,节拍器的速度增加,如果向左滑动则节拍器速度降低。

如何添加功能,以便在用户双击 JSlider 按钮时,它默认返回到 120 - 在中间?

这是我的代码:

public Metronome() {
    tempoChooser = new JSlider();
    metronomeButton = new JToggleButton();

    JLabel metText = new JLabel("Metronome:");
    add(metText);

    ...

    tempoChooser.setMaximum(200);
    tempoChooser.setMinimum(40);
    tempoChooser.addChangeListener(new javax.swing.event.ChangeListener() {
        public void stateChanged(javax.swing.event.ChangeEvent evt) {
            tempoChooserStateChanged(evt);
        }
    });
    add(tempoChooser);
    ...
    }

private void tempoChooserStateChanged(javax.swing.event.ChangeEvent evt) {
    final int tempo = tempoChooser.getValue();
    if (((JSlider) evt.getSource()).getValueIsAdjusting()) {
        setMetronomeButtonText(tempo);
    } else {
        processTempoChange(tempo);
    }
}

提前致谢!

最佳答案

这应该可以帮助您:http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

您需要仔细阅读并实现 MouseListener。您可以使用 int getClickCount() 来统计用户点击了多少次,这将有助于您读取双击。

希望这对您有所帮助!

关于Java:双击 JSlider 重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150176/

相关文章:

java - Apache Camel HTTP 超时

java - 特性一直让我发疯。救不了了! "FileNotFound"

java - setSize() 与 setPreferredSize() 和 pack()

javascript - Backbone : Collection Won't Reset

JavaScript/jQuery : Clearing data after an API call

java - 复制数组

java - 为 Spring Batch 应用程序中的所有作业保持相同的 block 大小

java - JFrame 对象的垃圾收集器

java - 新线程和调用线程都会被阻塞 Java Semaphore

sockets - socket 未正确关闭的原因?