title: How to disable Button when TextField is empty?
body: <p>In the following code I have a TextField and a Button. I need to disable the Button when ever the TextField is empty, so that I can avoid entering empty values to the database. How can I make the button disabled ?</p>
  
  <pre><code>    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&lt;Staff, String&gt;("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&lt;ActionEvent&gt;() {
          @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;
  
  }
  </code></pre>