Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个ImageViewer项目,我正在尝试创建一个方法来恢复原始图像_Java_Image_Swing - Fatal编程技术网

Java 我有一个ImageViewer项目,我正在尝试创建一个方法来恢复原始图像

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

在应用程序中内置的过滤器一次后,我可以使用该方法将图像还原回其原始状态,之后每当我按下与还原方法链接的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();
    }

抱歉,这是我的第一个问题,所以如果格式不好或者我明显丢失了重要信息,请告诉我。在我的一生中,我无法理解为什么在原始图像已经设置一次之后,它还没有被设置。

我更改了我的代码,这样它就可以重新加载图像,而不是更改图像

我将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感谢您的反馈,我已尽可能缩短了它。