显示带有 20x20 像素图标的矩形 (3x5) 的最佳方式是什么?我想稍后更改每个图片图标的图像文件(=它不仅仅是静态图片)。我试图让 JFrame
充满 JPanels
,但我一次只能显示一个面板。我不想使用 GridLayout,因为我只需要框架内的小矩形。有什么想法如何去做吗?找不到任何教程或解决方案。我对 GUI 开发完全陌生。谢谢
最佳答案
您确实想要使用GridLayout
。您的问题是,您放入图标的 JFrame
默认情况下使用 BorderLayout
(实际上,您不应该更改顶级组件的布局)。
这意味着,如果您向框架添加多个面板,而不使用NORTH
、EAST
、SOUTH
之一, WEST
约束,只有一个面板可见并占据所有空间。如果您对获得的那个面板使用 GridLayout
,则图标将被拉伸(stretch),因为该面板由于框架的 BorderLayout
而接收了所有空间。另一种不拉伸(stretch)其内容的布局是 FlowLayout
,但要使用的布局在很大程度上取决于您的上下文。
要显示图标,JLabel
很方便。使用 ImageIcon
作为标签的图标。您稍后可以在标签上使用 setIcon()
来选择新图标。
总的来说,我的方法是这样的:
- 使用具有
BorderLayout
的JFrame
- 在框架中,添加一个
JPanel
到框架中。默认布局是FlowLayout
,这将防止拉伸(stretch) - 在面板中添加一个带有适当
GridLayout
的JPanel
- 向该面板添加
JLabel
,每个 JLabel 都有一个适当的ImageIcon
关于java - 如何创建一个内部包含多个图像的矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374355/