java 如何布局
在 Java 中,布局管理是通过布局管理器(Layout Manager)实现的,用于控制 GUI 组件在容器中的排列方式。以下是常见的布局管理器及其使用方法:
流式布局(FlowLayout)
FlowLayout 是默认的布局管理器,按照组件的添加顺序从左到右排列,空间不足时自动换行。适用于简单的组件排列。
JPanel panel = new JPanel(new FlowLayout());
panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
边界布局(BorderLayout)
BorderLayout 将容器分为五个区域:NORTH、SOUTH、EAST、WEST 和 CENTER。每个区域只能放置一个组件。
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.add(new JButton("North"), BorderLayout.NORTH);
frame.add(new JButton("Center"), BorderLayout.CENTER);
网格布局(GridLayout)
GridLayout 将容器划分为固定行数和列数的网格,每个网格大小相同。
JPanel panel = new JPanel(new GridLayout(2, 3));
panel.add(new JButton("1"));
panel.add(new JButton("2"));
panel.add(new JButton("3"));
panel.add(new JButton("4"));
网格包布局(GridBagLayout)
GridBagLayout 是最灵活的布局管理器,允许组件跨越多个网格,并可以设置组件的位置和大小。
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
panel.add(new JButton("Button 1"), gbc);
gbc.gridx = 1;
panel.add(new JButton("Button 2"), gbc);
盒式布局(BoxLayout)
BoxLayout 允许组件沿水平或垂直方向排列,支持组件间的间距和对齐方式。
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
空布局(Null Layout)
空布局允许手动设置组件的位置和大小,但不推荐用于跨平台应用。
JPanel panel = new JPanel();
panel.setLayout(null);
JButton button = new JButton("Button");
button.setBounds(50, 50, 100, 30);
panel.add(button);
卡片布局(CardLayout)
CardLayout 允许在同一个容器中切换不同的组件组,适用于向导式界面。
JPanel panel = new JPanel(new CardLayout());
panel.add(new JPanel(), "Panel1");
panel.add(new JPanel(), "Panel2");
CardLayout cl = (CardLayout) panel.getLayout();
cl.show(panel, "Panel2");
使用嵌套布局
复杂的界面通常需要嵌套使用多种布局管理器。

JPanel mainPanel = new JPanel(new BorderLayout());
JPanel topPanel = new JPanel(new FlowLayout());
JPanel centerPanel = new JPanel(new GridLayout(2, 2));
mainPanel.add(topPanel, BorderLayout.NORTH);
mainPanel.add(centerPanel, BorderLayout.CENTER);
通过选择合适的布局管理器,可以实现灵活的界面设计。






