【问题标题】:Error when trying to update a picture in JPanel尝试在 JPanel 中更新图片时出错
【发布时间】:2023-03-06 20:47:01
【问题描述】:

请原谅我复杂的 GUI 结构,我对此很陌生: 图片的URL->ImageIcon->JLabel->JScrollPane->JPanel->JTabbedPane->JFrame.

这个想法是通过一个按钮来更新图片,该按钮的操作会更新部分 url。为确保此按钮确实更改了 url,我有一个 JTextfield,它在按钮单击时显示 url。文本字段中的 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);        
    }



}

谢谢。

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java image swing


【解决方案1】:

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

而只是读取图像,创建一个新的 ImageIcon 然后你可以使用:

label.setIcon(...);

标签会自动重新绘制。

【讨论】:

    【解决方案2】:

    更改 URL 后添加 repaint() 命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多