我有多个JLabel,所有这些都有一个共同的MouseListener()。 现在在MouseClicked()上,即使我想验证当前单击的JLabel是否与前一个JLabel不同,我该怎么做? 我知道我可以简单地做一些类似" if(e.getSource()!= from label_1)&#34 ;,但由于标签不会被预先创建,而是每次从另一个类新创建,我需要一种不基于已知变量的验证方法,但实际检查当前源是否与前一个源不同。 这是mouseClicked方法
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;
}
}
答案 0 :(得分:0)
好吧,既然我的评论解决了你的问题,我会在这里重新发布它作为答案。 ☺
将以前的来源存储在字段中,并将e.getSource()
与之比较。然后将e.getSource()
存储到同一变量中以准备下一次点击。