![](/img/trans.png)
[英]Java: convert an EnumSet to a primitive array E[] (usage: 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.