Java 我有一个ImageViewer项目,我正在尝试创建一个方法来恢复原始图像
在应用程序中内置的过滤器一次后,我可以使用该方法将图像还原回其原始状态,之后每当我按下与还原方法链接的JButton时,它都不会执行任何操作。以下是我认为所有相关代码:Java 我有一个ImageViewer项目,我正在尝试创建一个方法来恢复原始图像,java,image,swing,Java,Image,Swing,在应用程序中内置的过滤器一次后,我可以使用该方法将图像还原回其原始状态,之后每当我按下与还原方法链接的JButton时,它都不会执行任何操作。以下是我认为所有相关代码: private OFImage originalImage; private OFImage currentImage; private void openFile() { int returnVal = fileChooser.showOpenDialog(frame); if(re
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();
}
抱歉,这是我的第一个问题,所以如果格式不好或者我明显丢失了重要信息,请告诉我。在我的一生中,我无法理解为什么在原始图像已经设置一次之后,它还没有被设置。我更改了我的代码,这样它就可以重新加载图像,而不是更改图像 我将selectedFile设置为在加载图像期间设置的字段,并更改了我的方法,如下所示:
private void restoreOriginal() {
currentImage = ImageFileManager.loadImage(selectedFile);
imagePanel.setImage(currentImage);
updateCropToolbar(currentImage.getWidth(), currentImage.getHeight());
showStatus("File restored.");
frame.pack();
}
以下是我认为所有相关的代码:“1)为了更快地获得更好的帮助,请添加or。2) 例如,获取图像的一种方法是热链接到中看到的图像。例如,嵌入到中的图像的热链接。@AndrewThompson感谢您的反馈,我已尽可能缩短了它。