从JTextField获取布尔值

时间:2012-01-02 22:40:56

标签: java swing boolean jtextfield

我正在尝试从下面的文本字段中获取值以与parent.addNewRoom(roomNo,roomEnSuite);一起使用,但roomEnSuite是父类中的布尔值。从JTextField获取布尔值的正确过程是什么?

public void actionPerformed( ActionEvent ae)     
    {
        String item = ae.getActionCommand(); 

        if ( item.equals("Confirm"))         
        {
            String roomNo = nameJTextField.getText();
            String roomEnSuiteS = idJTextField.getText();
            parent.addNewRoom(roomNo,roomEnSuite);
            this.dispose();
        }
        else if ( item.equals("Cancel"))        
        {
        parent.resetButtons();
        this.dispose();
    }
}

4 个答案:

答案 0 :(得分:3)

从上述评论中给出完整答案:

使用boolean处理JTextField输入不是一个好方法,因为用户可以输入yes / no / {{ 1}} / true等错误拼写?

使用false(针对单个答案)或JRadioButton(针对多个答案)将是处理JCheckboxtrue输入的更好方式。我建议使用false,因为您不希望用户选中JRadioButtontrue

http://docs.oracle.com/javase/tutorial/uiswing/components/button.html

答案 1 :(得分:2)

假设用户输入了字符串truefalse,您可以将其转换为boolean,其中包含:

boolean value = Boolean.parseBoolean(idJTextField.getText());

答案 2 :(得分:1)

JTextField旨在提供String。因此,除非您希望用户在文本字段中键入truefalse(或者您将解析为布尔值的任何字符串),否则可以使用更好的选项

  • 一个JCheckBox,通常用于切换设置,例如true-false
  • JRadioButtons(每个设置一个,在这种情况下为两个)

这里有一个link to the corresponding Swing tutorial,其中有关于如何使用这些按钮的示例

但是,如果您真的想要使用文本字段,那么您应该get the text并使用例如Boolean.valueOf来解析它

答案 3 :(得分:0)

只要输入的值始终为true或false,就可以使用;

获取布尔值

boolean value = Boolean.parseBoolean(enSuiteJTextField.getText());