流式布局:FlowLayout
public static void main(String[] args) { // 定义窗口 Frame frame = new Frame(); // 设置窗口大小,坐标 frame.setBounds(200, 200, 400, 400); // 设置窗口颜色 frame.setBackground(Color.BLACK); // 设置流式布局 FlowLayout flowLayout = new FlowLayout(); // 窗口设置流式布局 frame.setLayout(flowLayout); // 设置按钮 Button btn_1 = new Button("btn_1"); Button btn_2 = new Button("btn_2"); // 按钮放到布局中 frame.add(btn_1); frame.add(btn_2); // 关闭窗口 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 终止程序 System.exit(0); } }); // 设置窗口显示 frame.setVisible(true); }
边框布局:BorderLayout,有东西南北中几个方位
public static void main(String[] args) { // 定义窗口 Frame frame = new Frame(); // 设置窗口大小,坐标 frame.setBounds(200, 200, 400, 400); // 设置窗口颜色 frame.setBackground(Color.BLACK); // 设置边框布局 BorderLayout borderLayout = new BorderLayout(); // 窗口设置边框布局 frame.setLayout(borderLayout); // 设置按钮 Button btn_1 = new Button("EAST"); Button btn_2 = new Button("WEST"); Button btn_3 = new Button("NORTH"); Button btn_4 = new Button("SOUTH"); Button btn_5 = new Button("CENTER"); // 按钮放置边框布局中 frame.add(btn_1, BorderLayout.EAST); frame.add(btn_2, BorderLayout.WEST); frame.add(btn_3, BorderLayout.NORTH); frame.add(btn_4, BorderLayout.SOUTH); frame.add(btn_5, BorderLayout.CENTER); // 关闭窗口 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 终止程序 System.exit(0); } }); // 设置窗口显示 frame.setVisible(true); }
表格布局:GridLayout
public static void main(String[] args) { // 定义窗口 Frame frame = new Frame(); // 设置窗口大小,坐标 frame.setBounds(200, 200, 400, 400); // 设置窗口颜色 frame.setBackground(Color.BLACK); // 设置表格布局-设置几行几列 GridLayout layout = new GridLayout(2, 2); // 窗口设置为表格布局 frame.setLayout(layout); // 设置按钮 Button btn_1 = new Button("btn_1"); Button btn_2 = new Button("btn_2"); Button btn_3 = new Button("btn_3"); Button btn_4 = new Button("btn_4"); // 按钮放到布局中 frame.add(btn_1); frame.add(btn_2); frame.add(btn_3); frame.add(btn_4); // 关闭窗口 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 终止程序 System.exit(0); } }); // 设置窗口显示 frame.setVisible(true); }
窗口使用多个布局要用到面板Panel
例子:
public static void main(String[] args) { // 定义窗口 Frame frame = new Frame(); // 设置窗口大小,坐标 frame.setBounds(200, 200, 400, 400); // 设置窗口颜色 frame.setBackground(Color.BLACK); // 设置窗口大体为两行一列 frame.setLayout(new GridLayout(2, 1)); // 放置两个面板 Panel panel_1 = new Panel(); Panel panel_2 = new Panel(); frame.add(panel_1); frame.add(panel_2); // 第一个面板布局为边框布局,两边为按钮,中间为面板 // 面板设置布局 panel_1.setLayout(new BorderLayout()); // 两边设置为按钮 panel_1.add(new Button(), BorderLayout.WEST); panel_1.add(new Button(), BorderLayout.EAST); // 中间为面板,面板布局为两行一列的表格 // 设置面板,放到中间位置 Panel panel_3 = new Panel(); panel_1.add(panel_3, BorderLayout.CENTER); // 设置面板布局为两行一列的表格布局 panel_3.setLayout(new GridLayout(2, 1)); panel_3.add(new Button()); panel_3.add(new Button()); // 第二个面板布局为边框布局,两边为按钮,中间为面板 // 面板设置布局 panel_2.setLayout(new BorderLayout()); // 两边设置为按钮 panel_2.add(new Button(), BorderLayout.EAST); panel_2.add(new Button(), BorderLayout.WEST); // 中间为面板,面板布局为两行两列的表格 // 设置面板,放到中间位置 Panel panel_4 = new Panel(); panel_2.add(panel_4, BorderLayout.CENTER); // 设置面板布局为两行两列的表格布局 panel_4.setLayout(new GridLayout(2, 2)); panel_4.add(new Button()); panel_4.add(new Button()); panel_4.add(new Button()); panel_4.add(new Button()); // 关闭窗口 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 终止程序 System.exit(0); } }); // 设置窗口显示 frame.setVisible(true); // 设置窗口自适应 frame.pack(); }