[英]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.