JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.add(economy);
pMeasure.add(regularity);
...

当我运行上面的代码时,我得到以下输出:
Economy Regularity

在每个JLabel从新行开始的地方,如何获得此输出?谢谢
Economy
Regularity

最佳答案

您将需要使用layout managers来控制JPanel中控件的位置和大小。布局管理器负责放置控件,确定控件的位置,控件的大小,控件之间的空间以及调整窗口大小时发生的事情等。
有很多不同的布局管理器,每个管理器允许您以不同的方式布局控件。默认的布局管理器是FlowLayout,如您所见,它只是将组件从左到右彼此相邻放置。那是最简单的。其他一些常见的布局管理器是:

  • GridLayout-在具有相等大小的行和列的矩形网格中排列组件
  • BorderLayout-在中心有一个主要组成部分,在上方,下方,左侧和右侧最多包含四个周围的组件。
  • GridBagLayout-所有内置布局管理器中的Big Bertha,它使用起来最灵活但也最复杂。

  • 例如,您可以使用BoxLayout布置标签。

    使用BoxLayout的代码示例为:
    JPanel pMeasure = new JPanel();
    ....
    JLabel economy = new JLabel("Economy");
    JLabel regularity = new JLabel("Regularity");
    pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
    pMeasure.add(economy);
    pMeasure.add(regularity);
    ...
    

    10-07 13:54