JCombobox,getSelectedItem()超出ItemListener

时间:2013-11-11 13:47:40

标签: java swing combobox

我有一个带字符串的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();
        }
    });

提前多多感谢。

2 个答案:

答案 0 :(得分:3)

将您的xs变量声明为类的字段,它将起作用。或者使用这样的东西:

comboBox.addItemListener(new ItemListener() {

    @Override
    public void itemStateChanged(ItemEvent e) {
        String s = comboBox.getSelectedItem().toString();
        //passToAnotherClassMethod(s);
    }
});
JComboBox

read tutorial

答案 1 :(得分:2)

定义类的字段并将选择存储在字段中。或者在您需要选择的类中定义一个方法,并在itemStateChanged()中调用该方法。

targetClass.setSelection(comboBox.getSelectedItem().toString());