0

JComboBox を拡張するクラスを作成しました。モデルは次のように設定されています。

DefaultComboBoxModel<String> readoutModel = new DefaultComboBoxModel<String>(options.toArray(new String[options.size()]));
setModel(readoutModel);

このクラスは、別のクラス (myModel) の変更をリッスンするリスナー インターフェイスを実装します。これらの変更は、そのコンボボックスにはまったく関係がない可能性があり、選択の変更が含まれている可能性があり、そのコンボボックスのコンテンツの変更が含まれている可能性があります。

次のように選択を簡単に変更できます。

@Override
public void modelChanged() {
    ...
    setSelectedItem(myModel.getSelectedReadOut());
}

しかし、コンボボックスの内容を変更する必要がある場合はどうでしょうか? コンボボックスモデルを交換しますか? アイテムを相互処理して、myModel に存在するアイテムと比較する必要がありますか? コンボボックス モデルからすべての項目を削除してから、myModel から項目ごとに追加することもできますか? (これは、選択が変更された場合にも発生します...)。

4

1 に答える 1