Как показать изображение (класс 1), когда я нажимаю кнопку из другого класса - PullRequest
0 голосов
/ 01 июня 2019

(я действительно новичок в java и javafx)

Когда я нахожусь в сцене (class2), я нажимаю кнопку "Guardar" и мне нужно вернуться в другую сцену (class1) и показатьизображение (doubleTicket) (https://ibb.co/2jjJ5j3).

У меня уже есть 3 сцены.

Моя проблема в том, что когда я нажимаю «Guardar» в другой сцене, он повторяется и показывает правильно изображение doubleTicketно изображение, отображаемое в соответствии с другой кнопкой другой сцены, исчезает.

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

Это мой код:

открытый класс Vista1Controller { (в этом классе мне нужно показать изображение, если в классе "Formulario1" я нажал "Guardar")

@FXML private ImageView doubleTicket1;
@FXML private ImageView doubleTicket2;
@FXML private ImageView doubleTicket3;


public void onImagetuerca1PressedChangeScene(MouseEvent event) throws IOException {
    Parent vista1parent = FXMLLoader.load(getClass().getResource("/formulario1.fxml"));
    Scene vista1Scene = new Scene(vista1parent);

    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(vista1Scene);
    window.show();
}

public void onImagetuerca2PressedChangeScene(MouseEvent event) throws IOException {
    Parent vista2parent = FXMLLoader.load(getClass().getResource("/formulario2.fxml"));
    Scene vista2Scene = new Scene(vista2parent);

    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(vista2Scene);
    window.show();
}

public void onImagetuerca3PressedChangeScene(MouseEvent event) throws IOException {
    Parent vista3parent = FXMLLoader.load(getClass().getResource("/formulario3.fxml"));
    Scene vista3Scene = new Scene(vista3parent);

    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(vista3Scene);
    window.show();
}

public void setDoubleTicket1Visible(boolean e){
    doubleTicket1.setVisible(e);
}

public void setDoubleTicket2Visible(){
    if(doubleTicket1.isVisible()){
        doubleTicket1.setVisible(true);
        return;
    }
    doubleTicket2.setVisible(true);
}

public void setDoubleTicket3Visible(){
    doubleTicket3.setVisible(true);
}

открытый класс Formulario1Controller {

public void changeSceneOnButtonGuardarPressedF1(ActionEvent event) throws IOException{

    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("/vista1.fxml"));
    Parent buttonparent = loader.load();
    Scene buttonScene = new Scene(buttonparent);


    Vista1Controller vista1Controller = loader.getController();
    vista1Controller.setDoubleTicket1Visible(true);


    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(buttonScene);
    window.show();



}

public void changeSceneOnButtonVolverPressedF1(ActionEvent event) throws IOException{

    Parent buttonparent = FXMLLoader.load(getClass().getResource("/vista1.fxml"));
    Scene buttonScene = new Scene(buttonparent);

    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(buttonScene);
    window.show();
}

открытый класс Formulario2Controller расширяет Formulario1Controller { (когда здесь появляется изображение, изображение Formulario1 исчезает)

public void changeSceneOnButtonGuardarPressedF2(ActionEvent event) throws IOException {

    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("/vista1.fxml"));
    Parent buttonparent = loader.load();
    Scene buttonScene = new Scene(buttonparent);

    Vista1Controller vista1Controller = loader.getController();
    vista1Controller.setDoubleTicket2Visible();


    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(buttonScene);
    window.show();



}

public void changeSceneOnButtonVolverPressedF2(ActionEvent event) throws IOException{

    Parent buttonparent = FXMLLoader.load(getClass().getResource("/vista1.fxml"));
    Scene buttonScene = new Scene(buttonparent);

    Stage window = (Stage) ((Node) event.getSource()) .getScene() .getWindow();
    window.setScene(buttonScene);
    window.show();

}

Вкратце, мне нужно, чтобы изображение Formulario1 все еще было видно, когда появляется изображение Formulario2

У меня серьезные проблемы со связью между классами

Спасибо!

...