Java 改变背景图像的有效方法

Java 改变背景图像的有效方法,java,swing,Java,Swing,我正在寻找一种有效的方法,让用户在JPanel上设置新的背景图像。我有一个为自定义面板类创建的方法正在工作,但我不太确定它的效率。方法如下: public void setBackgroundImage(String imagePath){ try{ File imageFile = new File(imagePath); image = ImageIO.read(imageFile); JLabel backgroundImage =

我正在寻找一种有效的方法,让用户在JPanel上设置新的背景图像。我有一个为自定义面板类创建的方法正在工作,但我不太确定它的效率。方法如下:

public void setBackgroundImage(String imagePath){
    try{
        File imageFile = new File(imagePath);
        image = ImageIO.read(imageFile);
        JLabel backgroundImage = new JLabel(new ImageIcon(image));
        backgroundImage.setBounds(0, 0, 800, 600); // temporarily here
        add(backgroundImage);
    }
    catch(IOException e){
        e.printStackTrace();
    }
}
我想问的第一件事是,这个方法是否会在每次执行时在内存中创建越来越多的垃圾?如果是这样,我能做些什么来防止这种情况


我想关于对象创建,我还不太了解。对象是否像局部变量在方法末尾一样被销毁?

您可能应该了解Java垃圾收集是如何进行的,这可能超出了SO post的范围。尽管如此,我看到的一段小代码,您不应该关心性能。@AdamGent是的,我可能很快就会。谢谢,我想问一下,这段代码是否值得一想。我想真正的问题是,你多久调用一次?如果您只是每隔几秒钟使用一次,那么很好,但您不应该使用此方法以每秒30帧的速度更新UI;D@MattClark说得好,哈哈。我不会像在游戏中那样用它来快速更新背景。只要用户想在不同的地方使用,就只需更改背景图片。