Java 如何创建包含多个图像的矩形?

Java 如何创建包含多个图像的矩形?,java,swing,user-interface,layout-manager,Java,Swing,User Interface,Layout Manager,用20x20像素的图标显示矩形(3x5)的最佳方式是什么。?我想在以后更改每个pic图标的图像文件(=它不仅仅是静态图片)。我试图使JFrame充满jpanel,但一次只能显示一个面板。我不想使用GridLayout,因为我只需要一个框架内的小矩形。有什么办法吗?找不到任何教程或解决方案。我是GUI开发的新手。谢谢您确实想使用网格布局。您的问题是,您将图标放入的JFrame默认使用BorderLayout(实际上,您不应该更改顶级组件的布局) 这意味着,如果向框架添加多个面板,而不使用北、东、南

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

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

这意味着,如果向框架添加多个面板,而不使用
西
约束之一,则只有一个面板可见并占用所有空间。如果对您得到的一个面板使用
网格布局
,图标将被拉伸,因为该面板接收到由于框架的
边界布局
而产生的所有空间。另一种不会拉伸其内容的布局是
FlowLayout
,但要使用的布局在很大程度上取决于您的上下文

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

总的来说,我的方法是:

  • 使用带有
    边框布局的
    JFrame
  • 在框架中,添加一个
    JPanel
    。默认布局为
    流程布局
    ,这将防止拉伸
  • 在面板中,添加一个带有适当网格布局的
    JPanel
  • 在该面板中,添加
    JLabel
    s,每个标签都有一个适当的
    ImageIcon
您确实希望使用
网格布局。您的问题是,您将图标放入的
JFrame
默认使用
BorderLayout
(实际上,您不应该更改顶级组件的布局)

这意味着,如果向框架添加多个面板,而不使用
西
约束之一,则只有一个面板可见并占用所有空间。如果对您得到的一个面板使用
网格布局
,图标将被拉伸,因为该面板接收到由于框架的
边界布局
而产生的所有空间。另一种不会拉伸其内容的布局是
FlowLayout
,但要使用的布局在很大程度上取决于您的上下文

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

总的来说,我的方法是:

  • 使用带有
    边框布局的
    JFrame
  • 在框架中,添加一个
    JPanel
    。默认布局为
    流程布局
    ,这将防止拉伸
  • 在面板中,添加一个带有适当网格布局的
    JPanel
  • 在该面板中,添加
    JLabel
    s,每个标签都有一个适当的
    ImageIcon