我有一个带字符串的JCombobox,我想选择一个。我按照documetary上的说明创建了像那里建议的数组。我需要String将它进一步传递给另一个类。如果我想要传递s
,它就无法工作,因为它在itemStateChanged
内声明。如果我尝试设置x = s
,也不会有效,因为s
是在封闭类型中定义的。所以我的问题基本上是,我如何得到String s
?
String[] strategies = {"Select Strategy", "FastestAppFirst", "SmallestAppFirst", "BestFitFirst"};
final JComboBox comboBox = new JComboBox(strategies);
contentPane.add(comboBox, "2, 2, fill, default");
String x="";
comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
String s = comboBox.getSelectedItem().toString();
}
});
提前多多感谢。
答案 0 :(得分:3)
将您的x
或s
变量声明为类的字段,它将起作用。或者使用这样的东西:
comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
String s = comboBox.getSelectedItem().toString();
//passToAnotherClassMethod(s);
}
});
JComboBox
的答案 1 :(得分:2)
定义类的字段并将选择存储在字段中。或者在您需要选择的类中定义一个方法,并在itemStateChanged()
中调用该方法。
targetClass.setSelection(comboBox.getSelectedItem().toString());