Разжигание связи между двумя контроллерами JavaFX - PullRequest
0 голосов
/ 22 февраля 2020

Я учусь в колледже, изучаю Java, и один из наших проектов попросил нас создать редактор изображений (контроллер которого называется ImageDisplayController), который имеет окно фильтра ядра после нажатия кнопки (с любовью помеченной) «Показать фильтр»). Это делается в 2 отдельных этапа, как предложили мои инструкторы.

Однако, пытаясь получить изображение в ImageView (называемом imageView2, оно продолжает возвращаться как ноль. Я создал экземпляр контроллера, названного mainController, и получил оттуда imageView2, а затем использовал метод getImage() для получения изображения в ImageView, однако он по-прежнему возвращает значение NULL. Может кто-нибудь показать мне, что я делаю неправильно? Любая помощь приветствуется.

private void applyKernel() {
        try {
            double sum = 0;
            for (int j = 0; j < 9; j++) {
                sum += Double.parseDouble(textFields()[j]);
            }
            for (int i = 0; i < 9; i++) {
                double textNum = Double.parseDouble(textFields()[i]);
                textNum /= sum;
                kernel[i] = textNum;
            }

            //Part Where There's Trouble

            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("ImageDisplay.fxml"));
            ImageDisplayController mainController = fxmlLoader.getController();
            Image image = mainController.imageView2.getImage();
            Image newImage = convolve(image, kernel);
            mainController.imageView2.setImage(newImage);
        } catch (NumberFormatException e) {
            System.out.println("That is not a valid number");
        } catch (NullPointerException e) {
            System.err.println("The image cannot be null");
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...