0
使用的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();
部分代码。
下面是输出的屏幕截图。
任何优化这个建议是非常赞赏和欢迎。
谢谢,
我会尝试实现这一点。非常感谢。 – esjeidee