0

このJavaSwingJComboBoxは、システム構成の変更に基づいて変更されます。例の画像では、「Press to Select」は何も選択されておらず、構成に「Test Unit」が1つある場合ですが、「PresstoSelect」がドロップダウンに2回表示されます。追加の「PresstoSelect」アイテムはアイテム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()(不明な場合はログに記録してください)。他のスレッドの場合は、更新をに移動し、Runnableを使用SwingUtilities.invokeLater()してEDTでの実行をスケジュールします。

setSelectedItem(null)アップデートの一部としてお試しください。

于 2010-09-24T19:57:23.573 に答える
0

ばかげた間違い。2回追加します(@Geoffrey)。別のクラスで2番目の追加を見つけるのに時間がかかりすぎます。私の祖母は私に年をとらないように警告した。

于 2010-09-24T20:08:39.143 に答える