有人請向我解釋爲什麼當您將鼠標移動到複選框上時,爲什麼這段代碼會打印到控制檯?發生什麼「變化」事件?JCheckbox更改偵聽器獲取鼠標事件通知
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);
}
}
注:
checkBox.setSelected(boolean)
,並有我的聽衆通知,不能用做:因爲在我的計劃,我想能夠做我不使用動作監聽器行動監聽器。那麼有沒有辦法來禁用這個「鼠標懸停」事件或另一種方式我可以實現我的聽衆?
奇怪,我以爲使用'setSelected'會觸發更改監聽器。我一定在想別的東西。 – jeef3 2009-08-19 21:32:34
如果我在Mac OSX上運行Java 5,我不會將鼠標懸停在事件上。 – banjollity 2009-08-19 21:48:05
@ jeef3:setSelected DOES觸發器更改事件。這就是我使用它的原因。事情是,變化事件也得到鼠標在動作引發:) – 2009-08-19 22:05:31