繁体   English   中英

图片/文字未在JFrame中显示

[英]Image/text not showing in JFrame

到目前为止,我想创建一个包含图像和文本的窗口:

public void ShowPng1() {
        ImageIcon theImage = new ImageIcon("Icon_Entry_21.gif");
        panel.setSize(270, 270);
        JLabel label = new JLabel("Hello, World!");
        JLabel imageLabel = new JLabel(theImage);
        imageLabel.setOpaque(true);
        panel.add(imageLabel);
        panel.add(label);
        panel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel.setVisible(true);
    }

我的面板:

private JFrame panel = new JFrame();

由于某种原因,它既不会加载,也不会图像或文本,只会弹出为白色窗口。 可能是什么问题? 我也尝试将格式更改为.png ,但没有用。

更新

import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class Img {

    private JFrame panel = new JFrame();

    public Img(){
        ShowPng1();
    }

    public void ShowPng1() {
        ImageIcon theImage = new ImageIcon("Icon_Entry_21.gif");
        panel.setSize(300, 300);
        panel.setResizable(false);
        JLabel label = new JLabel("Hello, World!");
        JLabel imageLabel = new JLabel(theImage);
        imageLabel.setOpaque(true);
        panel.add(imageLabel);
        panel.add(label, BorderLayout.PAGE_END);
        panel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel.setVisible(true);
    }

    public static void main(String[] args) {
        new Img();
    }
}

我设法做到了这一点,这很荒谬,因为我不知道如何使其与我的程序一起使用。 Reimeus为我提供了一个单独创建此脚本的想法,此修复程序有效。 我将不得不浏览整个程序,以查看是否缺少任何内容。 在单独的类中创建它也应该起作用。

它只是弹出一个白色的窗口

听起来好像您在启动时阻止了EDT。 您可能需要使用Swing的并发机制之一来解决它。 发布一个最小,完整,经过测试和可读的示例,以便我们可以确定。

同时...

您要在BorderLayout.CENTER位置中theImage包含theImage组件的组件。

panel.add(label);

您可以组织标签,以便它们可以同时显示(将组件放置在2个不同的BorderLayout位置即可)

panel.add(imageLabel);
panel.add(label, BorderLayout.PAGE_END);

您应该制作一个JPanel并将其添加到框架中,然后将标签添加到面板中

就像是

 private JPanel panel = new JPanel;

然后将其添加到方法调用的框架中

frame.add(panel);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM