如何在里面创建一个包含多个图像的矩形?

时间:2014-04-29 20:11:06

标签: java swing user-interface layout-manager

最好的显示方式是什么?让我们说矩形(3​​x5)带有20x20像素的图标。?我想稍后更改每个pic图标的图像文件(=它不仅仅是静态图片)。我试图让JFrame充满JPanels,但我一次只能显示一个面板。我不想使用GridLayout,因为我只需要一个框架内的小矩形。有什么想法怎么做?找不到任何教程或解决方案。我是GUI开发的新手。感谢

1 个答案:

答案 0 :(得分:4)

想要使用GridLayout。您的问题是,您放置图标的JFrame默认使用BorderLayout(实际上,您不应更改顶级组件的布局)。

这意味着,如果您向框架添加多个面板,而不使用NORTHEASTSOUTHWEST约束之一,则只有一个面板将是可见的并占据所有空间。如果您使用GridLayout来获得该面板,则图标将被拉伸,因为面板会因帧BorderLayout而获得所有空间。不延伸其内容的替代布局是FlowLayout,但要使用的布局在很大程度上取决于您的上下文。

要显示图标,JLabel非常方便。使用ImageIcon作为标签的图标。您可以稍后在标签上使用setIcon()来选择新图标。

总的来说,我的方法是:

  • 使用JFrame
  • BorderLayout
  • 到框架中,向框架添加JPanel。默认布局为FlowLayout,这将阻止拉伸
  • 在面板中添加JPanel,并添加适当的GridLayout
  • 到该面板,添加JLabel,每个ImageIcon都有一个合适的{{1}}