1.需要设计如下布局

2.根据实际布局,初始化Frame
Frame frame = new Frame();
frame.setTitle("布局测试");
frame.setBounds(50,50,600,600);
frame.setLayout(new GridLayout(2,1));
3.初始化Panel
//划分上下两部分
Panel top_panel = new Panel(new BorderLayout());
Panel bottom_panel = new Panel(new BorderLayout());
//设置背景
top_panel.setBackground(Color.RED);
bottom_panel.setBackground(Color.GREEN);
//上部分左右初始化
top_panel.add(new Button("button1"),BorderLayout.EAST);
top_panel.add(new Button("button2"),BorderLayout.WEST);
/上部分中间初始化
Panel top_center_panel = new Panel(new GridLayout(2, 1));
top_center_panel.add(new Button("button3"));
top_center_panel.add(new Button("button4"));
top_panel.add(top_center_panel,BorderLayout.CENTER);
//小部分左右初始化
bottom_panel.add(new Button("button5"),BorderLayout.EAST);
bottom_panel.add(new Button("button6"),BorderLayout.WEST);
//小部分中间初始化
Panel bottom_center_panel = new Panel(new GridLayout(2, 2));
bottom_center_panel.add(new Button("button7"));
bottom_center_panel.add(new Button("button8"));
bottom_center_panel.add(new Button("button9"));
bottom_center_panel.add(new Button("button10"));
bottom_panel.add(bottom_center_panel,BorderLayout.CENTER);
5. panel添加到frame
//添加上下两部分
frame.add(top_panel);
frame.add(bottom_panel);
//设置框架可视化
frame.setVisible(true);
//设置退出监听事假
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
点击查看完整代码
package org.example;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class guitest {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setTitle("布局测试");
frame.setBounds(50,50,600,600);
frame.setLayout(new GridLayout(2,1));
//划分上下两部分
Panel top_panel = new Panel(new BorderLayout());
Panel bottom_panel = new Panel(new BorderLayout());
//设置背景
top_panel.setBackground(Color.RED);
bottom_panel.setBackground(Color.GREEN);
//上部分左右初始化
top_panel.add(new Button("button1"),BorderLayout.EAST);
top_panel.add(new Button("button2"),BorderLayout.WEST);
//上部分中间初始化
Panel top_center_panel = new Panel(new GridLayout(2, 1));
top_center_panel.add(new Button("button3"));
top_center_panel.add(new Button("button4"));
top_panel.add(top_center_panel,BorderLayout.CENTER);
//小部分左右初始化
bottom_panel.add(new Button("button5"),BorderLayout.EAST);
bottom_panel.add(new Button("button6"),BorderLayout.WEST);
//小部分中间初始化
Panel bottom_center_panel = new Panel(new GridLayout(2, 2));
bottom_center_panel.add(new Button("button7"));
bottom_center_panel.add(new Button("button8"));
bottom_center_panel.add(new Button("button9"));
bottom_center_panel.add(new Button("button10"));
bottom_panel.add(bottom_center_panel,BorderLayout.CENTER);
//添加上下两部分
frame.add(top_panel);
frame.add(bottom_panel);
//设置框架可视化
frame.setVisible(true);
//设置退出监听事假
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
6.实际效果
