Java ArrayList标准;包括「;这种方法似乎不起作用
我正在用Java编写一个程序。 我有一些看似非常简单的代码,与一个对话框有关,用户可以在该对话框中将颜色添加到戳记的颜色属性中 有问题的部分是在用户单击两个按钮之一时执行的代码:取消或添加。我只是想通过使用ArrayList的“contains”方法检查与戳相关联的颜色的ArrayList是否包含它来检查戳是否已经拥有用户试图添加的颜色。但是当颜色已经存在时要执行的代码永远不会执行。当我添加一些调试代码来打印值时,它可以工作,但包含的内容永远不会工作。有什么想法吗Java ArrayList标准;包括「;这种方法似乎不起作用,arraylist,contains,Arraylist,Contains,我正在用Java编写一个程序。 我有一些看似非常简单的代码,与一个对话框有关,用户可以在该对话框中将颜色添加到戳记的颜色属性中 有问题的部分是在用户单击两个按钮之一时执行的代码:取消或添加。我只是想通过使用ArrayList的“contains”方法检查与戳相关联的颜色的ArrayList是否包含它来检查戳是否已经拥有用户试图添加的颜色。但是当颜色已经存在时要执行的代码永远不会执行。当我添加一些调试代码来打印值时,它可以工作,但包含的内容永远不会工作。有什么想法吗 public void act
public void actionPerformed(ActionEvent e)
{
if ( e.getSource() == btnAddColor )
{//WE HAVE CLICKED btnAddColor
if ( table.getSelectedRowCount() != 0 ) //THERE IS A CHOSEN COLOR IN THE JTABLE
{
String selectedColor=(table.getValueAt(table.getSelectedRow(), table.getSelectedColumn())).toString();
//FIRST WE HAVE TO CHECK THAT THE COLOR IS NOT ALREADY EXISTING FOR THIS STAMP
if (Share.timbreNow.getColorList().contains( colorDao.findByName(selectedColor).get(0)))
{//WE DO NOT TAKE THE ADD ACTION INTO ACCOUNT BECAUSE IT IS AN ALREADY EXISTING COLOR
notificationPopup.setContent("The stamp already has this color !");
NotificationManager.showNotification(notificationPopup);
}
else //WE CAN ADD THE COLOR
{
Timer timer = new Timer(1000, new ActionListener() //Set a timer
{
public void actionPerformed(ActionEvent e)
{
DialogAddColor.this.setVisible(false);
DialogAddColor.this.dispose();
}
});
timer.start();//Start the timer
notificationPopup.setContent("Adding the color \"" + selectedColor + "\"");
NotificationManager.showNotification(notificationPopup);
Share.chosenColor = colorDao.findByName(selectedColor).get(0);
}
}
else //NO CHOSEN COLOR
{
notificationPopup.setContent("No chosen color !");
NotificationManager.showNotification(notificationPopup);
}
}
else if ( e.getSource() == btnCancel )
{//WE HAVE CLICKED btnCancel : LEAVE THE DIALOG WITHOUT DOING ANYTHING
this.dispose();
}
}//END OF METHOD
验证您使用的任何类型的对象是否正确实现了
equals
方法。我的自定义对象不会覆盖“equals”方法。如果是的话,基类的“equals”方法不应该工作吗?基类实现检查它们是否是同一个对象。如果你有可能拥有两个等价的对象,你需要自己实现。如果这能解决你的问题,请记住向上投票/接受。我会的。在执行此操作之前,请等待第二个意见。好的,您的意思是基本实现只检查引用是否相等,而不检查包含的字段。我说得对吗?