繁体   English   中英

从JTextField获取布尔值

[英]Get boolean from a 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();
    }
}

为了从我的上述评论中得到完整的答案:

使用JTextField处理boolean输入不是解决问题的好方法,因为用户可以输入yes / no / true / false等多种变体,例如拼写错误?

使用JRadioButton (用于单个答案)或JCheckbox (用于多个答案)将是处理truefalse输入的更好方法。 我建议使用JRadioButton因为您不希望用户检查truefalse

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

假设用户输入字符串truefalse ,则可以使用以下命令将其转换为boolean

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

JTextField旨在提供String 因此,除非您希望用户在文本字段(或将解析为布尔值的任何字符串)中输入truefalse ,否则会有更好的选择

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

这里是指向相应的Swing教程链接,其中包含有关如何使用这些按钮的示例

但是,如果您真的想使用文本字段,则应该从中获取文本并使用例如Boolean.valueOf进行解析。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM