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);
...