尝试更新JPanel中的图片时出错

时间:2011-12-11 21:05:57

标签: java image swing

请原谅我复杂的GUI结构,我对此非常陌生: 图片的网址 - > ImageIcon-> JLabel-> JScrollPane-> JPanel-> JTabbedPane-> JFrame。

这个想法是通过一个按钮来更新图片,该按钮的动作会更新网址的一部分。为确保此按钮确实更改了网址,我有一个JTextfield,它会在按钮点击时显示网址。文本字段中的URL显示更新确实发生,但GUI中的图片保持不变。

创建图像窗格的类:

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;

public class MapPicturePanel {
    public JScrollPane getContent(BufferedImage image) {
        ImageIcon icon = new ImageIcon(image);
        JLabel label = new JLabel(icon);
        label.setHorizontalAlignment(JLabel.CENTER);
        return new JScrollPane(label);        
    }



}

谢谢。

2 个答案:

答案 0 :(得分:2)

每次更改图片时都不要创建新面板。

只需阅读图片,创建一个新的ImageIcon,然后就可以使用:

label.setIcon(...);

并且标签将自动重新绘制。

答案 1 :(得分:1)

更改URL

后添加repaint()命令