gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:02:39 24 4
gpt4 key购买 nike

如何以 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com