如何解决如何以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.add(picLabel);
最后,在存储图像方面,您应该在项目中创建一个资源文件夹,并且如果正确设置了类路径,则可以在类上使用getResourceAsStream()
方法来获取图像。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。