我有一个带有附加 ChangeListerner 的简单 JSlider。这是代码:
JSlider slider = new JSlider();
slider.setMinorTickSpacing(2);
slider.setMajorTickSpacing(20);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setSnapToTicks(true);
slider.setOrientation(SwingConstants.VERTICAL);
contentPane.add(slider, BorderLayout.CENTER);
slider.addChangeListener(new SliderListener());
class SliderListener implements ChangeListener {
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider)e.getSource();
if (!source.getValueIsAdjusting()) {
System.out.println("boo");
}
}
}
如您所见,代码并没有做太多事情,我现在要做的就是确保事件只触发一次,因此我的事件只是在 Eclipse 中向控制台打印一些内容。
但是每次更改滑块时,上面的代码都会打印两次“嘘”。我猜这与 Slider 上的鼠标释放有关,但无论如何,我希望它只触发一次事件,因此只打印一次单词。
我怎样才能做到这一点?
谢谢