有没有办法检查我们从点击(mouseClicked)获得的按钮是否与按钮数组中存在的按钮相同?我已经使用了(==)和equals(),但都不起作用。
我是java的新手,请记住这一点。
答案 0 :(得分:0)
==
和equals()
具有不同的功能:
<强> == 强>
如果对象的两个引用指向同一个对象,则 ==
变为true,如下所示:
Object a = new Object();
Object b = a;
System.out.println(a == b);
// prints true because a referres to the same onject as b
<强>等于()强>
如果对象相等,则 equals()
返回true,这意味着不一定是同一个对象。它改为检查所有字段/属性是否相等。它的实现取决于课程。
答案 1 :(得分:0)
应该使用ActionListener
而不是MouseListener
来处理按钮点击。当你这样做时,你可以通过这种方式访问点击源:
ActionListener al = e -> {
JButton button = (JButton) e.getSource();
//search your array here
};
button.addActionListener(al);
然后只需浏览您的数组并通过==
运算符比较引用。另外,我建议使用Collection
代替数组,并使用Collection.contains(T t)
方法。