java - 如何创建一个内部包含多个图像的矩形?

标签 java swing user-interface layout-manager

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

最佳答案

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

这意味着,如果您向框架添加多个面板,而不使用NORTHEASTSOUTH之一, WEST 约束,只有一个面板可见并占据所有空间。如果您对获得的那个面板使用 GridLayout,则图标将被拉伸(stretch),因为该面板由于框架的 BorderLayout 而接收了所有空间。另一种不拉伸(stretch)其内容的布局是 FlowLayout,但要使用的布局在很大程度上取决于您的上下文。

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

总的来说,我的方法是这样的:

  • 使用具有 BorderLayoutJFrame
  • 在框架中,添加一个 JPanel 到框架中。默认布局是 FlowLayout,这将防止拉伸(stretch)
  • 在面板中添加一个带有适当 GridLayoutJPanel
  • 向该面板添加 JLabel,每个 JLabel 都有一个适当的 ImageIcon

关于java - 如何创建一个内部包含多个图像的矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374355/

相关文章:

java - 具有不同布局的 Android RecyclerView 不起作用

两个类之间的jquery动画背景图像

java - 如何设置滚动到顶部 - JScrollpane中有多个JTextarea的JPanel

java - JInternalFrame 最小化,同时保持当前位置

java - JButtons 没有正确显示 borderlayout,还有向按钮添加 actionListener 的问题

Java Swing 强制 UI 线程上的光标外观发生变化

algorithm - 如何使按钮在 GUI 中不可见?

java - 安卓工作室错误 : E/AndroidRuntime

java - 如何在 python 或 java 中将 geotiff 转换为 jpg?

java - 如何在我的 Web 应用程序中实现 REST。我想为我的网站制作一个休息 API?