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