[英]Simple Java GUI, cards not appearing
import javax.swing.*;
public class SlideShow {
JFrame slide = new JFrame("Slide Show");
public SlideShow(){
slide.setSize(300,400);
slide.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
slide.setVisible(true);
slide.setLocationRelativeTo(null);
JPanel panel = new JPanel();
JLabel label = new JLabel(new ImageIcon("Images/picture1"));
panel.add(label);
slide.add(panel);
}
public static void main(String[] args){
SlideShow slide = new SlideShow();
}
}
我必须创建一个显示一些卡的简单Java GUI。 首先,我只想显示一张卡进行测试。 由于某种原因,我似乎无法弄清为什么什么也不显示。
您实际上并没有使用正确的文件名"Images/picture1"
。 文件格式应为"Images/picture1.png"
如果打算将图像文件嵌入到程序中,通常也应该从类路径中读取图像文件。 为此,您首先需要将文件放在类路径中。 使用大多数IDE构建配置,就像将映像放在src
一样简单。 所以
ProjectRoot
src
images
picture1.png
然后你会读它像
new ImageIcon(getClass().getResource("/images/picture1.png"));
更好的方法是使用ImageIO.read()
。 如果文件路径不正确,它将引发异常,因此您知道将要出错的地方
Image image = ImageIO.read(getClass().getResource("/images/picture1.png"));
ImageIcon icon = new ImageIcon(image);
您需要将其放入try/catch
块中
添加组件后,还要执行codeNinja关于setVisible()
内容。 还最好将框架pack()
而不是setSize()
在将所有必需的组件添加到框架后,需要将其设置为可见。 移动slide.setVisible(true);
像下面这样构造到底部:
...
slide.add(panel);
slide.setVisible(true);
或者,您可以添加slide.revalidate();
在构造函数的底部。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.