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

Schreibe einen Kommentar