Java Swingでは、JList
とJComboBox
のデータを同期させる、つまり任意の時点で同じアイテムリストを持つための最良の方法は何ですか?基本的に、アイテムをアイテムに追加する(またはそこからアイテムを削除する)場合、もう一方はアイテムを自動的に反映する必要があります。同期JListとJComboBox?
私は次のことをやってみましたが、動作していないよう:
JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultListModel listModel = new DefaultListModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(new DefaultComboBoxModel(listModel.toArray()));
APIを精査した後でも、私はそれを考えなかったとは思えません。それは完璧に働いた。あなたの助けをありがとう! –
アイテムを同期するためにきちんとしていますが、選択したアイテムを同期する簡単な方法はありますか? – HpTerm
@HpTerm:それほど簡単ではありません。コンボボックスモデルは選択自体を管理しますが、リストには個別のListSelectionModelがあります。 ListSelectionModelを実装しているDefaultComboboxmodelをサブクラス化することも、リスナーを使用して選択状態を同期させることもできます(ただし、無限ループを避けるよう注意してください)。 (また、選択モードを 'SINGLE_SELECTION'に設定する必要があります。) –