2012-04-28 11 views
3

最初のアイテムが2つのコンボボックス(女性と男性)です。ユーザーが最初のコンボボックスで女性を選択すると、女性のドレスのリストが2番目に表示されますコンボボックスと男性が選択されたときに男性のドレスのリストは、JComboボックスを使用してこの機能を行うことができます。はい、どうすればいいですか、私に例を挙げてください。 助けていただければ幸いです。別のコンボボックスのスイングを使用してコンボボックスを制御する方法

答えて

12

です。最初のコンボボックスの選択に従って、2番目のコンボボックスのモデルを再構築、フィルタリング、または置き換えます。 DefaultComboBoxModelを使用/拡張することができます - JComboBoxで使用されるデフォルトモデルです。 JComboBox方法removeAllItems()addItem()を使用して:あなたはすなわち、手動で二番目の項目を再構築することができます最初のコンボで

final JComboBox genderComboBox = null; 
final JComboBox itemComboBox = null; 

final DefaultComboBoxModel hisModel = new DefaultComboBoxModel(new String[]{"a", "b", "c"}); 
final DefaultComboBoxModel herModel = new DefaultComboBoxModel(new String[]{"x", "y", "z"}); 

genderComboBox.addActionListener (new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     if ("Men".equals(genderComboBox.getSelectedItem())){ 
      itemComboBox.setModel(hisModel);  
     } else { 
      itemComboBox.setModel(herModel);  
     } 
    } 
}); 

また、選択時:たとえば、このスニペットを考えてみましょう。

+1

ありがとうございます。 – lina

+1

関連[例](http://stackoverflow.com/a/3191882/230513)も参照してください。 – trashgod

1

イベントリスナーを最初のコンボボックスに追加する必要があります。こうすることで、その選択がいつ変化するかを知り、それを調べて、適切なデータで2番目のコンボボックスを埋めることができます。

詳しい情報はHow to Use Combo BoxesHow to Use Lists totorialsでモデルを操作する方法について確認しhttp://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#listeners