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

时间:2010-09-24 19:12:42

标签: java swing jcombobox

此Java Swing JComboBox基于对系统配置的更改进行了修改。 在示例图像中,“按选择”是指未选择任何内容且配置中有一个“测试单位”的情况,但在下拉列表中显示两次“按下选择”。额外的“按选择”项目的行为类似于项目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);
        }
        ...

alt text

2 个答案:

答案 0 :(得分:0)

事件调度线程或其他线程调用的update方法是什么? (如果您不确定,请记录SwingUtilities.isEventDispatchThread())。如果是任何其他线程,请将更新移至Runnable并使用SwingUtilities.invokeLater()安排在EDT上执行。

尝试setSelectedItem(null)作为更新的一部分。

答案 1 :(得分:0)

愚蠢的错误。添加两次(@Geoffrey)。花了太长时间才找到第二个加入另一个班级。我的祖母警告我不要老。

相关问题