此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);
}
...
答案 0 :(得分:0)
事件调度线程或其他线程调用的update
方法是什么? (如果您不确定,请记录SwingUtilities.isEventDispatchThread()
)。如果是任何其他线程,请将更新移至Runnable
并使用SwingUtilities.invokeLater()
安排在EDT上执行。
尝试setSelectedItem(null)
作为更新的一部分。
答案 1 :(得分:0)
愚蠢的错误。添加两次(@Geoffrey)。花了太长时间才找到第二个加入另一个班级。我的祖母警告我不要老。