Wie zu deaktivieren, wenn TextField leer ist?
In den folgenden code, ich habe ein TextField und einen Button. Ich brauche zu deaktivieren, die Taste, wenn jemals das TextField leer ist, so dass ich vermeiden, die Eingabe leerer Werte in die Datenbank. Wie kann ich die Taste deaktiviert ?
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;
}
InformationsquelleAutor TomJ | 2014-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den anderen Weg kann mit Bindungen:
stackoverflow.com/questions/23194183/...
InformationsquelleAutor Uluk Biy
Ähnlich Uluk Antwort, aber mit den Bindungen fluent-API:
Beachten Sie auch, dass diese neue überladene Methode von
Bindings
Hinzugefügt wird in JavaFX-8 und nicht verfügbar in den JavaFX-2.Vielen Dank für bemerken: behoben.
InformationsquelleAutor James_D
verwenden
textProperty()
Listener fürTextField
versuchen, diese...
Überprüfen auf updates
Was ist 't1' ? Ich don ' T verwendet 't1' irgendwo in meinem code und erstaunlich, es zeigt keine Fehler.
t1 ist eine aktuelle Zeichenfolge in der text-box.seine eine string-variable Ihren Namen ändern nach Ihrem Bedarf
InformationsquelleAutor Anshul