舞台显示时如何禁用按钮

时间:2019-10-04 19:25:58

标签: javafx

您好,我想在显示阶段时禁用按钮,我将按钮命名为registros,将其命名为阶段registrosiniciales,这是打开阶段时的代码。

public void mostrarregistrosi() throws IOException {

        Stage registrosiniciales=new Stage();
        FXMLLoader cargaregistros = new FXMLLoader(getClass().getResource("TablaIncidentes.fxml"));
        Parent StackPane = (Parent)cargaregistros.load();
        Scene scene = new Scene(StackPane);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        registrosiniciales.setScene(scene);
        registrosiniciales.setTitle("Registro De Incidentes");
        registrosiniciales.show();

         registros.disableProperty().addListener(new ChangeListener<Boolean>(){
                @Override public void changed(ObservableValue ov,Boolean old_val, Boolean new_val){
                 registrosiniciales.show();

                  }

                  });
         registros.setDisable(true);
        }

当我关闭舞台时,该按钮仍处于禁用状态。有帮助或方向吗?

1 个答案:

答案 0 :(得分:-1)

registrosiniciales.focusedProperty().addListener(new ChangeListener<Boolean>()
        {
          @Override
          public void changed(ObservableValue<? extends Boolean> b, Boolean oldValue, Boolean newValue)
          {
            if(newValue == false) {
                registros.setDisable(true);
          }

          }
        });

        registrosiniciales.showingProperty().addListener(new ChangeListener<Boolean>()
        {
          @Override
          public void changed(ObservableValue<? extends Boolean> b, Boolean oldValue, Boolean newValue)
          {
            if(newValue == false) {
                registros.setDisable(false);
          }

          }
        });