Я учусь в колледже, изучаю 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");
}
}