JAVA:如何验证单击的项目是否与之前单击的项目不同



我有多个 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()存储到同一变量中,为下一次点击做准备。

最新更新