0

这个 Java Swing JComboBox 是根据对系统配置的更改进行修改的。在示例图像中,“Press to Select”是未选择任何内容且配置中有一个“Test Unit”,但“Press to Select”在下拉菜单中显示两次的情况。附加的“Press to Select”项目的行为类似于项目 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);
        }
        ...

替代文字

4

2 回答 2

0

update方法是由事件调度线程还是由其他线程调用的?SwingUtilities.isEventDispatchThread()(如果您不确定,请登录)。如果它是任何其他线程,请将您的更新移动到 aRunnable并用于SwingUtilities.invokeLater()安排它在 EDT 上执行。

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

于 2010-09-24T19:57:23.573 回答
0

愚蠢的错误。添加两次(@Geoffrey)。在另一个类中找到第二个添加的时间太长了。我的祖母警告我不要变老。

于 2010-09-24T20:08:39.143 回答