图像未在jPanel中显示

时间:2016-09-02 18:35:35

标签: java swing jpanel jpeg imageicon

所以我试图在jPanel中的jPanel中显示图像。

(我想这就是你在jFrame中显示JPEG / PNG的方式) 这就是我正在做的事情:

在jFrame的构造函数中,我动态下载图像,创建一个ImageIcon和一个jLabel(设置图标),并将其插入到jPanel中。

我以前使用NetBeans IDE创建了jPanel, initPaonents()中定义了 jPanelImage

如果我使用调试器查看代码,他会下载图像而不会抛出任何异常。

它也可以正常运行代码而没有任何问题。

但我的jFrame继续为空。 这是代码:

    public TransmissionFrame() {
        initComponents();

        init();
    }

    private void init() {

    JLabel label = new JLabel("Java Technology Dive Log");
    ImageIcon image = null;
    try {
        image = new ImageIcon(ImageIO.read(new URL("http://i.imgur.com/6mbHZRU.png")));
    } catch(MalformedURLException mue) {
        mue.printStackTrace();
    } catch(IOException ioe) {
        ioe.printStackTrace();
    } 
    label.setIcon(image);
    jPanelImage.add(label);
    jPanelImage.validate();
}

但我的jFrame和jPanel仍然是空的,为什么?

2 个答案:

答案 0 :(得分:2)

更新,为JPanel分配布局可能是解决方案

 public TransmissionFrame() {
        initComponents();

        init();
    }

 private void init() {
JLabel label = new JLabel("Java Technology Dive Log");
ImageIcon image = null;
try {
    image = new ImageIcon(ImageIO.read(new URL("http://i.imgur.com/6mbHZRU.png")));
} catch(MalformedURLException mue) {
    mue.printStackTrace();
} catch(IOException ioe) {
    ioe.printStackTrace();
} 
label.setIcon(image);
jPanelImage.setLayout(new FlowLayout()); 
jPanelImage.add(label);

}

答案 1 :(得分:0)

jPanelImage.setVisibility(true);