簡體   English   中英

在JAVA中使用JComboBox和DefaultComboBoxModel

[英]Use of JComboBox and DefaultComboBoxModel in 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(); 代碼的一部分。

下面是輸出的屏幕截圖。

產量

非常感謝和歡迎任何優化此建議的建議。

謝謝,

Combobox1具有兩個值輔音和元音,下面是combobox1的動作事件示例。

 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"}));
}
}     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM