gpt4 book ai didi

java - 为什么我不能做 addMouseListener(e ->{ });?

转载 作者:行者123 更新时间:2023-11-30 06:04:17 26 4
gpt4 key购买 nike

我目前在这里为我的鼠标 listener 使用此代码:

    public void mousePressed(MouseEvent e) {

JLabel labelReference=(JLabel)e.getSource();
if(labelReference.getBackground()==HighLight) {
turn^=true;
if(turn==true){
labelReference.setBackground(Color.blue);
};
if(turn==false){
labelReference.setBackground(Color.red);
};
}
}

这行得通,但我正在尝试更改/删除它,以便在将我的鼠标监听器添加到所有 JLabels 时:

Pjaser[i][j].addMouseListener(e ->{

});

但似乎给我一个错误,当它是 addActionListener( e->{有人可以给我任何解决此问题的提示吗

谢谢

最佳答案

那么,让我们看一下 ActionListenerMouseListener...

public interface ActionListener extends EventListener {
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e);

}

public interface MouseListener extends EventListener {

/**
* Invoked when the mouse button has been clicked (pressed
* and released) on a component.
*/
public void mouseClicked(MouseEvent e);

/**
* Invoked when a mouse button has been pressed on a component.
*/
public void mousePressed(MouseEvent e);

/**
* Invoked when a mouse button has been released on a component.
*/
public void mouseReleased(MouseEvent e);

/**
* Invoked when the mouse enters a component.
*/
public void mouseEntered(MouseEvent e);

/**
* Invoked when the mouse exits a component.
*/
public void mouseExited(MouseEvent e);
}

好的,所以 ActionListener 只有一种可能的方法,而 MouseListener 有 5 个,所以当你这样做时......

Pjaser[i][j].addMouseListener(e ->{

});

Java 应该调用哪个方法?

幸运的是你(和我们其他人),Java 开发人员也有同样的感受,他们不想让 ti 实现 MouseListener(或 MouseMotionListener MouseWheelListener),所以他们提供了所有这些的“默认”实现,基本上只是创建方法的空实现,MouseAdapter...

Pjaser[i][j].addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
}
});

好吧,它并不“完全”相同,但它更易于阅读和管理,真是太棒了

关于java - 为什么我不能做 addMouseListener(e ->{ });?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com