【发布时间】:2016-09-11 10:15:19
【问题描述】:
我正在使用一个 JLabels 数组,其中多个对象是可点击的(为简单起见,下面仅显示一个)。当每一个被点击时,它应该运行一小段代码来改变基于点击哪个对象的开关。之后,它应该运行为每个 JLabel 运行的通用代码,但根据开关的不同执行略有不同。
问题在于下面的示例先运行“//run this code second”位,然后运行“//run this code first”位。有没有办法扭转这种行为?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ListenToMice extends JFrame implements MouseListener
{
private JLabel[] difference = new JLabel[11];
public ListenToMice( )
{
difference[1].addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e) {
//run this code first
}
});
}
public void mouseClicked(MouseEvent e) {
//run this code second
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
【问题讨论】:
-
你有一个额外的大括号
},我不确定这段代码是不是你用来编译和测试行为的,我只是把它粘贴在difference[1].addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { //run this code first } });下面删除了 -
@KeshShan 对此感到抱歉。我现在修好了。它仍然缺少 gui 组件,但如果添加了 gui,则会显示所描述的行为
-
哦,没关系,我刚刚解决了我自己的问题。立即发布答案
标签: java mouseevent mouselistener