如何以gridbaglayout格式显示图像?

时间:2011-05-26 02:10:12

标签: java image gridbaglayout

如何以GridGagLayout格式显示图像?

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

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

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

编辑: 嘿thx 我有点想象自己 但只是为了确保 我做到了     嘿thx 我有点想象自己 但只是为了确保 我做了:

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);

所以这确实显示了我想要的图像 它现在看起来很好用 所以这个编码有什么问题吗? 所以这确实显示了我想要的图像 它现在看起来很好用 这个编码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

查看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.add(picLabel);

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