java - 如何以gridbaglayout格式显示图像?

标签 java image gridbaglayout

如何以 GridGagLayout 格式显示图像?

我正在制作一款纸牌游戏(确切地说是 3 张纸牌扑克),我设法将 3 张红心之类的纸牌名称显示为 JLabel 等,但我不知道如何显示图像以及如何将其放置在我想要的位置..

JLabel label = new JLabel("Deal");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 2;
pane.add(label, c);

我应该将图像文件存储在哪里,驱动器上的任何位置,还是项目文件夹中?

编辑: 嘿谢谢 我自己有点明白了 但只是为了确保 我做到了:

card=new ImageIcon("G:\\CS3\\png cards\\Card Back.png");
c1 = new JLabel(card);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 1;
c.gridy = 0;
pane.add(c1, c);

所以这确实显示了我想要的图像 它,看起来现在工作正常 那么这个编码有什么问题吗?

最佳答案

查看 java gridbag 教程,了解如何布局项目 http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

但基本概念是,当您添加组件时,它们会在网格上分配一个位置,并且它们可以占用该网格中的多个单元格。请注意,有时这可能很乏味。

在添加图像方面,有几种方法,但据我所知,可能最简洁的方法是创建 BufferedImage,然后将该图像作为图像图标添加到 jpanel 中:

InputStream imageStream = this.getClass().getResourceAsStream("resources/image.jpeg")
BufferedImage image = ImageIO.read(imageStream);
JLabel picLabel = new JLabel(new ImageIcon(image))

然后您就有了一个 JLabel,它是一个图像,您可以将其添加到您的 Pane 中。

pane.add(picLabel);

最后,在存储图像方面,您应该在项目中创建一个资源文件夹,如果您的类路径设置正确,那么您可以在类上使用 getResourceAsStream() 方法来获取图像.

关于java - 如何以gridbaglayout格式显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132991/

相关文章:

java - 使用 GridBagLayout 的各种网格大小和 JPanel 元素

java - 如何使用PDFClown将图片添加到pdf文件

html - 在表格的列中拟合图像

image - 如何在 div 内使用 anchor 垂直居中图像?

image - 如何将平面原始磁盘镜像转换为 virtualbox 或 vmplayer 的 vmdk?

java - 为什么这三个使用 GridBagLayout 的面板使用不同的额外空间,以及如何使它们统一

java - GridBagLayout 未填充 JPanel

Java:没有编译错误,但我的输出是错误的

使用外部 jar 进行 Java 编译 : cannot find symbol

java - 从每个 ArrayList 对象具有多个值的 ArrayList 写入文本文件 (java)