我使用SQL查询填充了组合框的元素,并将选定的值写入arraylist。当我打印出arraylist的元素时,该值已被添加两次。有谁知道这是为什么,我怎么阻止这种情况发生?
代码摘录:
resultSet = statement.executeQuery("SELECT name FROM menu WHERE category = 'beverage'");
while (resultSet.next())
{
beverageJComboBox.addItem(resultSet.getString(1));
System.out.printf("%s", resultSet.getString(1));
}
对于将Array添加到ArrayList:
beverageJComboBox.addItemListener(
new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
billItems.add((String)beverageJComboBox.getSelectedItem());
System.out.printf("%s", billItems);
}
}// end anonymous inner class
);
(Java新手!)
答案 0 :(得分:1)
使用ActionListener代替ItemListener
beverageJComboBox.addActionListener (new ActionListener () {
public void actionPerformed(ActionEvent e) {
...
}
});
注意:在查询中使用distinct
关键字来显示JComboBox
中的唯一记录。