Java 为什么JComboBox似乎添加了多个项实例?

Java 为什么JComboBox似乎添加了多个项实例?,java,swing,jcombobox,Java,Swing,Jcombobox,这个JavaSwingJComboBox是根据对系统配置的更改而修改的。 在示例图像中,按下选择是指未选择任何内容且配置中有一个测试单元,但按下选择在下拉列表中显示两次。额外按下以选择项的行为类似于项0,因此功能正常,但这种方式看起来很糟糕。有什么想法吗 public class Controller extends javax.swing.JFrame implements Observer { ... public void update(Observable o, Obje

这个JavaSwingJComboBox是根据对系统配置的更改而修改的。 在示例图像中,按下选择是指未选择任何内容且配置中有一个测试单元,但按下选择在下拉列表中显示两次。额外按下以选择项的行为类似于项0,因此功能正常,但这种方式看起来很糟糕。有什么想法吗

public class Controller extends javax.swing.JFrame implements Observer {
    ...
    public void update(Observable o, Object arg) {
        jComboBox.removeAllItems();
        jComboBox.addItem("Press to Select");
        String[] names = Configuration.getNames();
        for (String n : names) {
            jComboBox.addItem(n);
        }
        ...
更新方法是由事件分派线程调用还是由其他线程调用?如果不确定,则记录SwingUtilities.isEventDispatchThread。如果是任何其他线程,请将更新移动到可运行状态,并使用SwingUtilities.invokeLater将其安排在EDT上执行


尝试将setSelectedItemnull作为更新的一部分。

愚蠢的错误。添加两次@Geoffrey。在另一个类中查找第二个外接程序花费的时间太长。我祖母警告我不要变老。

你确定你没有两次在jComboxAddItem中添加断点而意外添加它吗?你有自定义渲染器或类似的东西吗!对我一直在调试程序,试图找到它有一段时间,但是的,它在那里。仍在学习如何使用NetBeans IDE。谢谢