如何动态更改JFrame背景?

时间:2016-05-23 13:20:41

标签: java image swing jframe

我在更改JFrame背景图片时遇到小问题。首先,我添加了JLabel的背景图片,应用程序运行良好。但现在我需要动态地改变它。

我试过这段代码:

label = new JLabel(new ImageIcon(Toolkit.getDefaultToo... // old background image

public void changeImage(){

label.setVisible(false);

label2 = new JLabel(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("weatherall.gif"))));
setContentPane(label2);  // new Background image
label2.setVisible(true);
repaint();

} 
 switch (cmb.getSelectedItem().toString()) {
    case "ISTANBUL":
        x = 0;
        changeImage();
         //some codes......vs.vs.               
        break;

此外,我每隔1秒尝试一次计时器(TimerTask)。刷新框架

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

现在我们需要创建JLabel并将其设置为背景(拉伸它)之后只需将图像添加到JLabel中,当您想要更改它时只需更改同一JLabel中的图像不要尝试添加另一个JLabel ,它不起作用!! ......就是这样。

JLabel label = new JLabel(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource(localweather))));
setContentPane(label);//when u want to change background image just replace 'localweather' another image.