マウスをチェックボックスの上に移動すると、このコードがコンソールに表示される理由を教えてください。行われる「変更」イベントとは何ですか?JCheckbox変更リスナーがマウスオーバーイベントを通知されました
checkBox.setSelected(boolean)
をしてで行うことができない、私のリスナーに通知があります。
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
JCheckBox c = new JCheckBox("Print HELLO");
c.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("HELLO");
}
});
f.getContentPane().add(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
注:私のプログラムでは、私が行うことができるようにしたいので、私はアクションリスナーを使用していませんアクションリスナー。では、この「マウスオーバー」イベントを無効にする方法や、リスナーを実装する別の方法がありますか?
奇妙なことに、私は 'setSelected'を使って変更リスナをトリガすると考えました。私は何か他のことを考えなければならない。 – jeef3
Mac OSX上でJava 5を実行した場合、イベントでマウスが表示されません。 – banjollity
@ jeef3:setSelectedは変更イベントをトリガします。だからこそ私はそれを使用しています。事は、変更イベントもマウスの動きによって引き起こされるということです:) –