Java 实现MouseListener与addMouseListener
胡,伙计们 我在实现MouseListener接口和addMouseListener时有一种奇怪的行为。 这是我的代码:Java 实现MouseListener与addMouseListener,java,events,mouseevent,mouselistener,Java,Events,Mouseevent,Mouselistener,胡,伙计们 我在实现MouseListener接口和addMouseListener时有一种奇怪的行为。 这是我的代码: public class SwitchButton extends JPanel { public static final Dimension PREF_SIZE = new Dimension(32, 16); private SwitchButtonModel switchButton; public SwitchButton() {
public class SwitchButton extends JPanel {
public static final Dimension PREF_SIZE = new Dimension(32, 16);
private SwitchButtonModel switchButton;
public SwitchButton() {
this.setBorder(BorderFactory.createEmptyBorder(0, 0, (int)PREF_SIZE.getWidth(), (int)PREF_SIZE.getHeight()));
switchButton = new SwitchButtonModel();
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
switchButton.toggleStatus();
}
});
}
这个代码有效。switchButton的toggleStatus()方法在我单击面板区域时执行
如果我实现MouseListener接口,则永远不会调用mouseClicked事件
public class SwitchButton extends JPanel implements MouseListener {
public static final Dimension PREF_SIZE = new Dimension(32, 16);
private SwitchButtonModel switchButton;
public SwitchButton() {
this.setBorder(BorderFactory.createEmptyBorder(0, 0, (int)PREF_SIZE.getWidth(), (int)PREF_SIZE.getHeight()));
switchButton = new SwitchButtonModel();
@Override
public void mouseClicked(MouseEvent arg0) {
switchButton.toggleStatus();
}
... All other methods of MouseListener interface ...
为什么??你能帮助我吗?
谢谢大家! 因为您从未在第二种情况下添加鼠标侦听器。你仍然需要做
addMouseListener(这个)
。哦,我的天哪,这太愚蠢了!非常感谢你!因为您从未在第二种情况下添加鼠标侦听器。你仍然需要做addMouseListener(这个)
。哦,我的天哪,这太愚蠢了!非常感谢你!