禁用/启用所有标签和文本字段,甚至某些按钮,直到用户单击复选框为止

问题描述 投票:0回答:1

禁用/启用


Hi。


这些详细信息是关于我的VBox

1:复选框

2:标签和自己的textField

3:一个按钮


所以我想禁用 2号和3号直到 用户 单击在其复选框上。


我覆盖如下所示的handle方法:

sectionDisable.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent actionEvent) {

            myLabel.setDisable(!myField.isDisable());
            myField.setDisable(!myField.isDisable());
            mybutton.setDisable(!mybutton.isDisable());
        }
    });

好。但正如我告诉大家的那样,我首先希望禁用这些选项,所以我尝试这样做:

            myLabel.setDisable(true);
            myField.setDisable(true);
            mybutton.setDisable(true);

但是它不能按我的要求工作!并且它们一直处于禁用状态,无需考虑使用复选框!


启用它们后,如果用户单击复选框,则它们将再次禁用。


问题是我不知道如何第一次设置disable'em。


button javafx label textfield handle
1个回答
0
投票

您可以通过使用disableProperty()将控件绑定到CheckBox。


import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class Controller implements Initializable {

    @FXML public Label MyLabel;
    @FXML public TextField MyTextField;
    @FXML public Button MyButton;
    @FXML public CheckBox myCheckbox;

    @Override
    public void initialize(URL location, ResourceBundle resources)  {

        myCheckbox.setSelected(true);

        MyLabel.disableProperty().bind(myCheckbox.selectedProperty());
        MyTextField.disableProperty().bind(myCheckbox.selectedProperty());
        MyButton.disableProperty().bind(myCheckbox.selectedProperty());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.