JavaFX - 检查是否勾选了复选框

时间:2014-04-05 15:21:52

标签: checkbox javafx

我正在尝试编写一些代码来确定我的复选框是否已勾选,我知道我可以编写类似的内容来更改其状态以进行检查

checkbox.setSelected(true);

但我想按照

的方式写一些内容
if(checkbox.setSelected(true)){
   write login-username to config file
} else {
   clear the config file
}

我该怎么做呢?我一直在通过Oracle文档进行编辑,但还没有找到任何有用的东西

感谢。

3 个答案:

答案 0 :(得分:4)

您是否尝试过将注册人注册到"已选中"复选框的属性? 它看起来像这样:

yourCheckbox.selectedProperty().addListener(new ChangeListener<Boolean>() {

        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            // TODO Auto-generated method stub
            if(newValue){

                // your checkbox has been ticked. 
                // write login-username to config file

            }else{

                // your checkbox has been unticked. do stuff...
                // clear the config file
            }
        }
    });

答案 1 :(得分:3)

您可以使用.isSelected()来查看该复选框是否已勾选。

if(checkbox.isSelected()){
   write login-username to config file
} else {
   clear the config file
}

答案 2 :(得分:0)

如果有更简单的方法可以做到这一点会很棒但是我已经整理了一个解决方法 - 当我的应用程序启动时,我执行初始检查以查看配置文件是否已填充

    private Boolean populateUsername() {

    // Remember me string initialised
    String remember = "";

    // Check that our config file has some contents
    String checkConfig = configReader.readFile();

    // Check we have a string of legnth 1+, then set
    // the remember string
    if(checkConfig.length() > 0){
        rememberMe.setSelected(true);
        tickEnabled = true;
        remember = checkConfig;
        txtUsername.setText(remember);

    } else {
        tickEnabled = false;
    }
}

然后我更新了一个全局布尔tickEnabled,它允许我跟踪复选框的状态,从那里我可以触发我的updateConfig方法,如果用户不想被记住则清除文件,或者如果他们这样做,则重写文件。

就像我上面说的那样 - 简单的解决方法,但如果有办法直接检查复选框的状态会很好!