如何在构造函数之前初始化BufferedImage?

Jav*_*s ღ 2 java swing

您好我正在尝试在构造函数之前初始化BufferedImage实例.可能吗 ??

我不知道怎么样和在哪里?我也不想在方法或其他方面初始化它.

当我尝试在构造函数之前初始化它时它会向我显示错误.

我的代码:

public static class ImagePane extends JPanel
 {
        private BufferedImage bg;
        java.util.List<Path> imageFiles= getFilesFromDirectory(FileSystems.getDefault().getPath("D:\\New folder")); 

        bg = ImageIO.read(new File((imageFiles.get(3)).toString()));

        public ImagePane() 
        {
        }

        public void nextImage(int cnt)
        {
        }
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试将bg初始化代码放在一个内部try-catch,但它显示错误. 这可能吗 ?

Jun*_*san 6

您可以使用初始化程序块.

通常,您可以使用代码在构造函数中初始化实例变量.使用构造函数初始化实例变量有两种选择:初始化块和最终方法.

实例变量的初始化程序块看起来就像静态初始化程序块,但没有static关键字:

{
        bg = ImageIO.read(new File((imageFiles.get(3)).toString()));
}
Run Code Online (Sandbox Code Playgroud)

Java编译器将初始化程序块复制到每个构造函数中.因此,该方法可用于在多个构造函数之间共享代码块.