JavaAwtSwing布局管理器LayoutManager

158 阅读2分钟

JavaAwtSwing布局管理器LayoutManager

#布局管理器描述
1FlowLayout流式布局,按组件加入的顺序,按水平方向排列,排满一行换下一行继续排列。
2GridLayout网格布局,把Container按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。
3GridBagLayout网格袋布局,按网格划分Container,每个组件可占用一个或多个网格,可将组件垂直、水平或沿它们的基线对齐。
4BoxLayout箱式布局,将Container中的多个组件按 水平 或 垂直 的方式排列。
5GroupLayout分组布局,将组件按层次分组(串行 或 并行),分别确定 组件组 在 水平 和 垂直 方向上的位置。
6CardLayout卡片布局,将Container中的每个组件看作一张卡片,一次只能显示一张卡片,默认显示第一张卡片。
7BorderLayout边界布局,把Container按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
8SpringLayout弹性布局,通过定义组件四条边的坐标位置来实现布局。
9null绝对布局,通过设置组件在Container中的坐标位置来放置组件。
所属类包布局管理器名称说明
Java.awtFlowLayout(流式布局)组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列
Java.awtBorderLayout(边界布局)容器划分为东、西、南、北、中五个区域,每个区域只能放置一个组件。
Java.awtGridLayout(网格布局容器的空间划分成M×N列的网格区域, 每个区域只能放置一个组件。
Java.awtCardLayout(卡片布局)如同一叠牌,每个牌对应一个组件,但每次只能显示其中的一张牌。适用于在一个空间中防止多个组件的情况
Java.awtGridBagLayout(网格包布局)GridLayout的升级版,组件仍然是按照行、列放置,但是每个组件可以占据多个网格
Java.swingBoxLayout(箱式布局)允许在容器中纵向或者横向放置多个控件
Java.swingSprigLayout(弹簧布局)根据一组约束条件放置控件
空布局不使用布局管理器,按照控件自身提供的大小、位置信息放置控件

jdk20 LayoutManager接口已知的实现类

Interface LayoutManager All Known Subinterfaces: LayoutManager2 All Known Implementing Classes: BasicComboBoxUI.ComboBoxLayoutManager, BasicInternalFrameTitlePane.TitlePaneLayout, BasicInternalFrameUI.InternalFrameLayout, BasicOptionPaneUI.ButtonAreaLayout, BasicScrollBarUI, BasicSplitPaneDivider.DividerLayout, BasicSplitPaneUI.BasicHorizontalLayoutManager, BasicSplitPaneUI.BasicVerticalLayoutManager, BasicTabbedPaneUI.TabbedPaneLayout, BorderLayout, BoxLayout, CardLayout, DefaultMenuLayout, FlowLayout, GridBagLayout, GridLayout, GroupLayout, JRootPane.RootLayout, JSpinner.DateEditor, JSpinner.DefaultEditor, JSpinner.ListEditor, JSpinner.NumberEditor, MetalComboBoxUI.MetalComboBoxLayoutManager, MetalScrollBarUI, MetalTabbedPaneUI.TabbedPaneLayout, OverlayLayout, ScrollPaneLayout, ScrollPaneLayout.UIResource, SpringLayout, SynthScrollBarUI, ViewportLayout

序号子类名称
1BasicComboBoxUI.ComboBoxLayoutManager
2BasicInternalFrameTitlePane.TitlePaneLayout
3BasicInternalFrameUI.InternalFrameLayout
4BasicOptionPaneUI.ButtonAreaLayout
5BasicScrollBarUI
6BasicSplitPaneDivider.DividerLayout
7BasicSplitPaneUI.BasicHorizontalLayoutManager
8BasicSplitPaneUI.BasicVerticalLayoutManager
9BasicTabbedPaneUI.TabbedPaneLayout
10BorderLayout
11BoxLayout
12CardLayout
13DefaultMenuLayout
14FlowLayout
15GridBagLayout
16GridLayout
17GroupLayout
18JRootPane.RootLayout
19JSpinner.DateEditor
20JSpinner.DefaultEditor
21JSpinner.ListEditor
22JSpinner.NumberEditor
23MetalComboBoxUI.MetalComboBoxLayoutManager
24MetalScrollBarUI
25MetalTabbedPaneUI.TabbedPaneLayout
26OverlayLayout
27ScrollPaneLayout
28ScrollPaneLayout.UIResource
29SpringLayout
30SynthScrollBarUI
31ViewportLayout