Как закрыть Jframe из моего класса контроллера FXML? - PullRequest
1 голос
/ 08 июля 2019

У меня есть приложение Swing, и я должен интегрировать в него новые файлы javafx FXML. Я использую JFXPanel, чтобы открыть форму FXML. Кнопка выхода создается в форме FXML. Мой класс контроллера реализует событие этой кнопки. Но как мне закрыть Jframe из моего приложения Swing?

Мой класс контроллера JavaFX (метод)

    @FXML
    private void doExit(ActionEvent event) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Stage stage = (Stage) btnExit.getScene().getWindow();
                stage.close();
            }
        });
    }

Приложение Swing запускает загрузку моей JFXPanel

JFrame frame = new JFrame("");
                frame.setLayout(new BorderLayout());
                final JFXPanel jfxPanel = new JFXPanel();
                frame.add(jfxPanel, BorderLayout.CENTER);
                frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
                frame.setVisible(true);
                SwingUtilities.invokeLater(() -> initPrijsMutatieFX(jfxPanel));
...