使用Java方法getImage()创建的问题?

时间:2017-09-27 19:09:06

标签: java image class methods bufferedimage

因此,我尝试创建一个简单的应用程序,在该应用程序中,我可以单击按钮并允许用户使用菜单中的jFIleChooser显示他们选择的图像,并将该图像显示在标签中。我编写的代码适用于此,但我应该创建并使用一个名为" BufferedImage的方法getImage()"使用类" ImageManipulator"实际运行该代码,以便我可以调用该方法而不是运行主类中的所有代码。这就是我所拥有的:(我的ImageManipulator类)

public class ImageManipulator extends MainWindow {
BufferedImage image;

public ImageManipulator() {
    image = null;
}

public ImageManipulator(BufferedImage image){
    this.image = image;
}

public BufferedImage getImage() {
    FileChooser.showOpenDialog(null);
    BufferedImage image = null;
       try{
           File myFile = FileChooser.getSelectedFile();

           image = ImageIO.read(myFile);

           labelImage.setIcon(new ImageIcon(image));
       }
       catch(IOException e){

    }
    return image;

}

和GUI的主窗口(实际按下buttonClicked的代码):

private void buttonChooseActionPerformed(java.awt.event.ActionEvent evt) {                                             


        ImageManipulator myManipulator = new ImageManipulator(image);
        myManipulator.getImage();


}   

因此它出现错误,因为myManipulator中的图像变量尚未声明或初始化。我意识到我需要在我的主窗口中初始化上面的图像变量并且" connect"它以某种方式通过getImage()返回的图像变量,我只是不确定如何这样做或者设置图像等于什么,以便它实际运行getImage()方法中的代码。我不习惯使用类和OO编程,所以希望有人可以在这里给我一些指导。

1 个答案:

答案 0 :(得分:0)

为了使方法正常工作,我删除了第二个构造函数

public ImageManipulator(BufferedImage image){ this.image = image; }

并使用第一个构造函数进行了一些小的更改

public ImageManipulator() { this.image = image; }

创建ImageManipulator myManipulator = new ImageManipulator();时,因为在这种情况下实际上不需要传递myManipulator参数。