我有多个 JLabels,它们都有一个共同的 MouseListener()。现在在 MouseClicked() 上,即使我想验证当前单击的 JLabel 是否与前一个不同且仅与前一个不同,我该怎么做?我知道我可以简单地做一些类似"if(e.getSource() != from label_1)"的事情,但由于标签不会预先创建,而是每次从另一个类新创建,我需要一种不基于已知变量的验证方法,但实际上检查当前源是否与前一个不同。这是鼠标单击的方法
public void mouseClicked(MouseEvent e) {
mapPanel = new JPanel();
JLabel temp = (JLabel) e.getSource();
if (!clicked) {
mapPanel.setSize(new Dimension(500, 500));
setSize(new Dimension(500, 650));
add(mapPanel);
System.out.println(clicked);
clicked = true;
temp.removeMouseListener(this);
mapPanel.setBackground(Color.RED);
}
// if(temp.pr)
else {
System.out.println(clicked);
remove(mapPanel);
temp.addMouseListener(this);
setSize(new Dimension(500, 150));
mapPanel.setBackground(Color.BLUE);
clicked = false;
}
}
,由于我的评论解决了您的问题,因此我将其重新发布在这里作为答案。 ☺
将以前的源存储在字段中,并将e.getSource()
进行比较。然后将e.getSource()
存储到同一变量中,为下一次点击做准备。