Kap*_*der 2 java arrays jlabel mouselistener actionevent
我目前在这里为鼠标使用以下代码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);
};
}
}
Run Code Online (Sandbox Code Playgroud)
这可行,但是当我将鼠标侦听器添加到所有对象时,我正在尝试更改/删除该内容JLabels:
Pjaser[i][j].addMouseListener(e ->{
});
Run Code Online (Sandbox Code Playgroud)
但是似乎给我一个错误,当它addActionListener( e->{
可以有人给我任何解决此问题的提示时,这似乎很好用
谢谢
那么,让我们来看看ActionListener和MouseListener...
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);
}
Run Code Online (Sandbox Code Playgroud)
好的,所以ActionListener只有一种可能的方法,其中MouseListener有5种,所以当您这样做时...
Pjaser[i][j].addMouseListener(e ->{
});
Run Code Online (Sandbox Code Playgroud)
Java应该调用哪种方法?
对于您(以及我们其他人)来说很幸运,Java开发人员也有同样的感觉,他们不想让ti实现MouseListener(或MouseMotionListeneror MouseWheelListener)的所有方法,因此他们提供了所有方法的“默认”实现,基本上只是创建方法的空实现,MouseAdapter...
Pjaser[i][j].addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
}
});
Run Code Online (Sandbox Code Playgroud)
好的,这并不完全相同,但是它的确很容易阅读和管理