13

a のリストの内容を変更したいJComboBox(古いリストの代わりに別のリストを追加するなど)。それができる方法はありますか?前もって感謝します!

4

5 に答える 5

11

実行時に既存のコンボ ボックスから項目を追加および削除できるようにする場合、コンボ ボックスの基になるデータ モデルは MutableComboBoxModel である必要があります。

インターフェイス情報とその使用方法の例については、そのクラスの Google を参照してください。

ユーザーに新しい値を入力させたい場合は、ボックスを編集可能にする必要もあります。

ここに例へのリンクがいくつかあります。

于 2008-12-29T00:35:02.927 に答える
5

私はこのスレッドを見つけて、迅速な(そしておそらく汚い)解決策を思いつきました:

oldComboBox.setModel(new JComboBox<>(new_items).getModel());
于 2011-12-05T14:04:39.183 に答える
2

もちろんできます。デフォルトのリスト モデルを使用して JComboBox を操作する方法はいくつかあります。remove* メソッドと add* メソッドを見てください。

http://java.sun.com/javase/6/docs/api/javax/swing/JComboBox.html

于 2008-12-29T00:37:54.543 に答える
2

モデル全体を setModel() で置き換えることもできます。

しかし、ますます多くのユーザー インターフェイスを作成した後、ComboBox が提示するデータ構造をラップするカスタム ComboBoxModel を作成する方が便利であることがわかりました。これは、より単体テスト可能でクリーンです、IMHO。

于 2008-12-29T01:41:48.830 に答える
0

Glazed Listsライブラリは、あらゆる種類の可変リストをGUIコントロールにワイヤリングする場合に非常に役立ちます。これは大規模なライブラリであり、プロジェクトには適さない場合がありますが、スクリーンキャストを見て、自分で判断してください。フィルタリングやオートコンプリートなど、関連する多くの機能をサポートしており、手作業を大幅に節約できます。

于 2008-12-29T14:25:37.243 に答える