java JComboBox问题
我试图创建两个Jcombox,其中第二个Jcombox应该根据第一个Jcombox中的更改来更改其值。 我试过了,但没有成功,非常感谢您的帮助。谢谢 这就是我迄今为止所尝试的:java JComboBox问题,java,Java,我试图创建两个Jcombox,其中第二个Jcombox应该根据第一个Jcombox中的更改来更改其值。 我试过了,但没有成功,非常感谢您的帮助。谢谢 这就是我迄今为止所尝试的: public class SharedDataBetweenComboBoxSample { static private String selectedString(ItemSelectable is) { Object selected[] = is.getSelectedObjects()
public class SharedDataBetweenComboBoxSample {
static private String selectedString(ItemSelectable is) {
Object selected[] = is.getSelectedObjects();
return ((selected.length == 0) ? "null" : (String)selected[0]);
}
public static void main(String args[]) {
final String labels[] = { "A", "B", "C" };
final String labelsA[] = { "A", "AA", "AAA" };
final String labelsB[] = { "B", "BB", "BBB" };
final String labelsC[] = { "C", "CC", "CCC" };
final JFrame frame = new JFrame("Shared Data");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JComboBox comboBox1 = new JComboBox();
comboBox1.addItem(labels);
comboBox1.setSelectedItem(null);
final JComboBox comboBox2 = new JComboBox();
// comboBox2.setEditable(true);
panel.add(comboBox1);
panel.add(comboBox2);
frame.add(panel,BorderLayout.NORTH);
ItemListener itemListener = new ItemListener() {
public void itemStateChanged(ItemEvent itemEvent) {
int state = itemEvent.getStateChange();
System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected");
System.out.println("Item: " + itemEvent.getItem());
ItemSelectable is = itemEvent.getItemSelectable();
System.out.println(", Selected: " + selectedString(is));
if (selectedString(is) == "B") {
comboBox2.addItem(labelsB);
// frame.add(comboBox1, BorderLayout.CENTER);
} else if (selectedString(is) == "A") {
comboBox2.addItem(labelsA);
// frame.add(comboBox1, BorderLayout.CENTER);
} else if (selectedString(is) == "C") {
comboBox2.addItem(labelsC);
// frame.add(comboBox1, BorderLayout.CENTER);
} else {
comboBox2.setSelectedItem(null);
// frame.add(comboBox1, BorderLayout.CENTER);
}
}
};
comboBox1.addItemListener(itemListener);
frame.setSize(300,200);
frame.setVisible(true);
}
}
我不太确定你的问题是什么,因为你没有说。也许问题是
comboBox2.addItem(labelsB);
这是在列表中添加一个数组作为单个项,假设它是正确的,这是完全可以接受的,但是我猜您希望遍历数组并将每个数组作为单独的项添加。您可能希望在取消选择时删除项目
我假设您正在尝试从第一个列表上的多个选项(基于selectedString操作)中进行选择,如果不是,您的代码是否已过时?如果是,您不需要一个If/else
构造,只需要多个If
s
另外,不要使用
(selectedString(is)=“A”)
,你可能会很幸运,但你应该使用“.A”.equals(selectedString(is))我在exampledepot.com和java2s.com上尝试了一些示例,但我无法根据我的需要使其工作。你为什么不先编辑你的帖子并发布正确格式的代码呢。您希望我们如何读取随机格式化的代码。对不起,我尝试过让它可读。
comboBox2.addItem(labelsB);