Я могу использовать метод, чтобы вернуть изображение в исходное состояние после применения фильтров, встроенных в мою программу ОДИН РАЗ, после чего всякий раз, когда я нажимаю кнопку JButton, связанную с методом восстановления, он ничего не делает. Вот то, что я считаю всем соответствующим кодом:
private OFImage originalImage;
private OFImage currentImage;
private void openFile()
{
int returnVal = fileChooser.showOpenDialog(frame);
if(returnVal != JFileChooser.APPROVE_OPTION) {
return; // cancelled
}
File selectedFile = fileChooser.getSelectedFile();
currentImage = ImageFileManager.loadImage(selectedFile);
originalImage = ImageFileManager.loadImage(selectedFile);
if(currentImage == null) { // image file was not a valid image
JOptionPane.showMessageDialog(frame,
"The file was not in a recognized image file format.",
"Image Load Error",
JOptionPane.ERROR_MESSAGE);
return;
}
imagePanel.setImage(currentImage);
setButtonsEnabled(true);
showFilename(selectedFile.getPath());
showStatus("File loaded.");
updateCropToolbar(currentImage.getWidth(), currentImage.getHeight());
frame.pack();
}
private void restoreOriginal() {
OFImage restore = originalImage;
currentImage = restore;
imagePanel.setImage(currentImage);
updateCropToolbar(currentImage.getWidth(), currentImage.getHeight());
showStatus("File restored.");
frame.pack();
}
Извинения, это мой первый вопрос, поэтому, если форматирование плохое или я явно упускаю важную информацию, дайте мне знать. Я просто не могу понять, почему originalImage не устанавливается после того, как он уже установлен один раз.