java - 选定的组合框值两次添加到数组列表中

标签 java swing arraylist jcombobox itemlistener

我已使用 SQL 查询填充组合框的元素,并将所选值写入数组列表。当我打印出数组列表的元素时,该值已添加两次。有谁知道这是为什么,我该如何阻止这种情况发生?

代码摘录:

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));
}

将项目添加到 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 来说非常陌生!)

最佳答案

使用ActionListener而不是 ItemListener

    beverageJComboBox.addActionListener (new ActionListener () {
        public void actionPerformed(ActionEvent e) {
            ...
        }
    });
<小时/>

注意:在查询本身中使用distinct关键字来显示JComboBox中的唯一记录。

关于java - 选定的组合框值两次添加到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23454565/

相关文章:

java - 为什么我的图像没有在 JPanel 上绘制?

java - 动态更新 JavaFX BarChart

java - 如何通过ArrayList或ArrayList获取表的值

java - 递归聚合键控列表对中的重复项

java - Maven 和 Java 版本设置——哪个解决方案更好?

Java 字符串操作 ReplaceAll

java - Spring 可以/应该为子事务重用 Hibernate Session (REQUIRES_NEW)

Java:微优化数组操作

java - 使用 GridBagLayout 用按钮填充框架

java - 在哪里添加 KeyListener 以便 'always' 被监听