Comment désactiver le Bouton lorsque le Champ est vide?
Dans le code suivant, j'ai un Champ de texte et un Bouton. J'ai besoin de désactiver le Bouton quand le Champ est vide, afin que je puisse éviter d'entrer des valeurs vides dans la base de données. Comment puis-je faire sur le bouton désactivé ?
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;
}
Vous devez vous connecter pour publier un commentaire.
L'autre sens peut-être en utilisant des liaisons:
Similaire à Uluk réponse, mais en utilisant les Liaisons API fluent:
Également noter que, cette nouvelle méthode surchargée de
Bindings
est ajouté dans JavaFX-8 et pas disponible en JavaFX-2.utilisation
textProperty()
Écouteur pourTextField
essayez ceci...