从jcombobox获取数据并将其转换为浮点数

时间:2013-12-17 20:56:49

标签: java swing user-interface jcombobox

这是我的jComboBox:

jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "3", "4" }));

   jComboBox1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jComboBox1ActionPerformed(evt);
        }

我希望选择34的值并将其转换为float

这就是我的尝试:

a = Float.parseFloat(jComboBox1.getActionCommand());

但它似乎没有起作用。

2 个答案:

答案 0 :(得分:1)

您需要使用JComboBox以外的值,而不是动作命令。特别致电:getSelectedItem()

How to use Combo Boxes

如果您只使用Floats作为选项,则可以将组合框中的值作为Float对象放置,这样您就不必在出路时解析它。

示例:

    JComboBox<Float> box = new JComboBox<Float>();
    box.addItem(3f);
    box.addItem(4f);

    // something


    Float selected = box.getItemAt(box.getSelectedIndex());

答案 1 :(得分:1)

您可以选择对象(getSelectedItem()方法)并将其转换为Float,如下所示:

Object o = jComboBox1.getSelectedItem();
Float floatValue = Float.valueOf(o.toString());
System.out.println(floatValue);

或在运行时,您需要使用ItemListener

jComboBox1.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent event) {
            if(event.getStateChange() == ItemEvent.SELECTED){
                Object o = event.getItem();
                Float floatValue = Float.valueOf(o.toString());
                System.out.println(floatValue);
            }
        }
});