gpt4 book ai didi

java - JPanel 背景图片未更改

转载 作者:行者123 更新时间:2023-11-30 11:35:02 25 4
gpt4 key购买 nike

我正在使用以下类将背景图像添加到 JPanel。

http://www.java2s.com/Code/Java/Swing-JFC/Panelwithbackgroundimage.htm

但是当应用程序正在执行并且图像被更改时,新的更新图像不会显示在屏幕上。

    Image image = new ImageIcon(path + item.getItemID() + ".png").getImage();
panel = new ImagePanel(image);

可变路径是工作区外的静态路径。

最佳答案

如果您“用新的 JPanel 更新 JPanel”,您并不是在“更新”,而是在创建一个新的 JPanel。例如,我们有一个名为“panelTest”的绿色 JPanel:

panelTest = new JPanel();
panelTest.setBackground(Color.green);
add(panelTest);

现在我们有一个按钮可以将 JPanel 的背景颜色从绿色更改为红色,但方式不对:

JButton btnTest = new JButton("Test");
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
panelTest = new JPanel(); //woops, now we have 2 panels...
panelTest.setBackground(Color.red);
}
});

请注意,panelTest 是指向绿色面板的指针,现在它指向具有红色背景的新 JPanel。这个新的 JPanel 尚未添加到任何容器,因此不会显示。旧的绿色面板将保持可见。

更新图像的最佳方法是在 ImagePanel 中创建一个方法,例如:

public void setImage( Image image ) {
this.img = image;
this.repaint();
}

这样您就不必为了更改背景而创建新的 ImagePanel。

关于java - JPanel 背景图片未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com