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");
}
}
}
ご覧のとおり、コードはあまり機能していません。ここでやりたいことは、イベントが 1 回だけ発生することを確認することだけです。したがって、私のイベントは、Eclipse 内のコンソールに何かを出力するだけです。
しかし、上記のコードは、Slider を変更するたびに「boo」を 2 回出力しています。これは Slider の Mouse Release と関係があると思いますが、それが何であれ、イベントを 1 回だけ発生させて、単語を 1 回だけ出力したいのです。
どうすればそれを達成できますか?
ありがとう