【发布时间】:2014-07-05 22:31:23
【问题描述】:
我正在编写一个 Java 程序。 我有一些看似非常简单的代码与对话框相关,用户可以在其中向图章的颜色属性添加颜色。
有问题的部分是在用户单击 2 个按钮之一时执行的代码:取消或添加。我只是想通过使用 ArrayList 的“包含”方法检查与图章关联的颜色的 ArrayList 是否包含它来检查图章是否已经具有用户尝试添加的颜色。但是当颜色已经存在时要执行的代码永远不会执行。当我添加一些调试代码来打印值时,它可以工作,但包含永远不会工作。有什么想法吗?
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
【问题讨论】: