обновить / обновить или открыть сцену в определенном касании (панель) - PullRequest
0 голосов
/ 29 октября 2018

я не знаю, очень хорошо говорю по-английски, поэтому я надеюсь, что вы меня понимаете.

хорошо, я пытаюсь передать значения между сценами.в моей первой сцене у меня есть значок, и когда я щелкаю по нему (значок), он открывает мою вторую сцену, в которой я показываю табличное представление со значениями, значениями, которые я хочу передать, когда выбрано одно из них.

проблема в том, что когда я снова показываю первую сцену, она открывается при первом нажатии на панель касания, и мне приходится снова выбирать касание, которое мне нужно, и мне интересно, существует ли какой-нибудь способ открыть сцену на определенной вкладке илипозвольте открыть первую сцену, и когда я выберу значение, вторая сцена закроется, и первая сцена покажет мне значение в текстовом поле.

это мой код:

контроллер первой сцены (щелчок по значкуit):

 @FXML
void seleccionarProveedor(MouseEvent event) {
    try {
        Node node = (Node) event.getSource();
        Stage stage = (Stage) node.getScene().getWindow();
        stage.close();
        Parent root = FXMLLoader.load(getClass().getResource("/interfaces/seleccionarProveedor.fxml"));
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();
    } catch (IOException ex) {
        Logger.getLogger(MercanciaController.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public void proveedor(Proveedor proveedor) {
    txtProveedor.setText(proveedor.getNombre());

}

Изображение первой сцены:

my first scene

код контроллера моей второй сцены (когда я выбираю значение из табличного представления):

   public Stage seleccionar(Proveedor proveedor) {
    try {
        FXMLLoader loader = new FXMLLoader(
                getClass().getResource(
                        "/interfaces/gestionMercancia.fxml"
                )
        );

        Stage stage = new Stage();
        stage.setScene(
                new Scene(
                        (Pane) loader.load()
                )
        );

        MercanciaController controller
                = loader.<MercanciaController>getController();
        controller.proveedor(proveedor);

        stage.show();

        return stage;
    } catch (IOException ex) {
        Logger.getLogger(SeleccionarProveedorController.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

 @FXML
public void seleccionarProveedor(MouseEvent event) {
    Node node = (Node) event.getSource();
    Stage stage = (Stage) node.getScene().getWindow();
    stage.close();
    Proveedor proveedor = tblData.getSelectionModel().getSelectedItem();
    seleccionar(proveedor);
}

Изображение второй сцены:

...