2017-08-09 2 views
0

私は2つのコンボボックスでパネルを作成することになっていました.2番目のコンボボックスの項目は、最初のコンボボックスで選択した項目に依存する必要があります。以下は、私が行ったことのコードスニペットです。これがうまく書かれていれば謝罪します。そんなことをするのは初めてのことです。JComboBoxとDefaultComboBoxModelのJavaでの使用

// Sets up comboSearch and comboFor 
    String[] searchList = {"Class", "Member", "Procedure"}; 
    final String[] forClassList = {"Parent", "Child", "Procedures", "Members", "All"}; 
    final JComboBox comboSearch = new JComboBox(searchList); 
    final DefaultComboBoxModel<String> model = new DefaultComboBoxModel(forClassList); 
    final JComboBox comboFor = new JComboBox(model); 
    searchSelect = (String) comboSearch.getSelectedItem(); 
    comboSearch.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      searchSelect = (String) comboSearch.getSelectedItem(); 
      System.out.println(searchSelect); 
      switch (searchSelect) { 
       case "Class": 
        model.removeAllElements(); 
        model.addElement("Parent"); 
        model.addElement("Child"); 
        model.addElement("Procedures"); 
        model.addElement("Members"); 
        model.addElement("All"); 
        break; 
       case "Member": 
        model.removeAllElements(); 
        model.addElement("Owner"); 
        break; 
       case "Procedure": 
        model.removeAllElements(); 
        model.addElement("Owner"); 
        model.addElement("Owner Parent"); 
        model.addElement("Owner Users"); 
        break; 
      } 
     } 
    }); 
    comboFor.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      forSelect = (String) comboFor.getSelectedItem(); 
      System.out.println(forSelect); 
     } 
    }); 

問題は、私は私が最初のコンボボックスから選択したときに、これを実行しようとするたびに、nullは、実際の値の前に印刷されていることです。私はこれがコードのmodel.removeAllElements();の部分のためだと思います。

以下は出力のスクリーンショットです。

output

、このいずれかを最適化するための任意の提案は非常に高く評価し、歓迎されています。

おかげで、

答えて

0

ComboBox1のは、2つの値の子音と母音を持っており、以下のComboBox1のアクションperfromedイベントのサンプルです。

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {           
if(jComboBox1.getModel().getSelectedItem().equals("Vowels")){ 
jComboBox2.setModel(new DefaultComboBoxModel(new String[]{"a","e","i","o","u"})); 
}else{ 
jComboBox2.setModel(new DefaultComboBoxModel(new String[]{"b","c","d","f"})); 
} 
}  
+0

私はこれを実装しようとします。どうもありがとう。 – esjeidee

関連する問題