gpt4 book ai didi

button - TextField 为空时如何禁用按钮?

转载 作者:行者123 更新时间:2023-12-04 01:17:52 24 4
gpt4 key购买 nike

在下面的代码中,我有一个 TextField 和一个 Button。当 TextField 为空时,我需要禁用 Button,这样我就可以避免向数据库输入空值。如何禁用按钮?

    private VBox addVBox() {

VBox vb1 = new VBox();
vb1.setPadding(new Insets(15, 20, 25, 20));
vb1.setSpacing(15);
vb1.setStyle("-fx-background-color: #333333;");

final Label label = new Label("Staff Details");
label.setFont(Font.font("Arial", FontWeight.BOLD, 20));
label.setTextFill(Color.WHITE);

TableColumn sub = new TableColumn("Staff Name");
sub.setMinWidth(400);
sub.setCellValueFactory(
new PropertyValueFactory<Staff, String>("subName"));

table.setItems(data);
table.getColumns().addAll(sub);

addSubName = new TextField();
addSubName.setPromptText("Staff Name");
addSubName.setPrefSize(200, 30);

final Button b2 = new Button("Add");
b2.setFont(Font.font("Calibri", FontWeight.BOLD, 17));
b2.setPrefSize(70, 30);
b2.setStyle(" -fx-base: #0066ff;");
b2.setTextFill(Color.BLACK);

b2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {

msg = addSubName.getText();
try {
enterStaff();
} catch ( ClassNotFoundException | SQLException ex) {
Logger.getLogger(AddStaff.class.getName()).log(Level.SEVERE, null, ex);
}

data.add(new Staff(addSubName.getText()));
addSubName.clear();
}
});

hb.getChildren().addAll(addSubName, b2);
hb.setSpacing(5);

vb1.getChildren().addAll(label, table, hb);
return vb1;

}

最佳答案

类似于 Uluk 的回答,但使用 Bindings fluent API:

btn.disableProperty().bind(
Bindings.isEmpty(textField1.textProperty())
.and(Bindings.isEmpty(textField2.textProperty()))
.and(Bindings.isEmpty(textField3.textProperty()))
);

还要注意的是, Bindings 这个新的重载方法在 JavaFX-8 中添加,在 JavaFX-2 中不可用。

关于button - TextField 为空时如何禁用按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com