java中的布局嵌套(GUI编程)
观前提示:博主正在跟着狂神说的java视频自学
其中有一道题是根据下图创建一个窗口 废话少说,下面是我的代码:
package com.lng.lesson1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test {
public static void main(String[] args) {
Frame frame = new Frame();//创建窗口
//创建面板上下两部分
Panel p1 = new Panel();
Panel p2 = new Panel();
//创建面板中间两部分
Panel p3 = new Panel();
Panel p4 = new Panel();
//创建10个按钮
Button btn1 = new Button("btn1");
Button btn2 = new Button("btn2");
Button btn3 = new Button("btn3");
Button btn4 = new Button("btn4");
Button btn5 = new Button("btn5");
Button btn6 = new Button("btn6");
Button btn7 = new Button("btn7");
Button btn8 = new Button("btn8");
Button btn9 = new Button("btn9");
Button btn10 = new Button("btn10");
frame.setBounds(600,250,500,500);//设置窗口出现位置及大小
//上下两部分为东西南北中布局
p1.setLayout(new BorderLayout());
p2.setLayout(new BorderLayout());
//中间两部分为表格布局
p3.setLayout(new GridLayout(2,1));//对应上半部分中间的两行一列
p4.setLayout(new GridLayout(2,2));//对应下半部分中间的两行两列
p1.add(btn1,BorderLayout.WEST);//添加上半部分的左边按钮,即西区
p1.add(btn2,BorderLayout.EAST);//添加上半部分的右边按钮,即东区
p1.add(p3,BorderLayout.CENTER);//在上半部分的中间部分添加一个新面板
p2.add(btn3,BorderLayout.WEST);//添加下半部分的左边按钮,即西区
p2.add(btn4,BorderLayout.EAST);//添加下半部分的左边按钮,即东区
p2.add(p4,BorderLayout.CENTER);//在下半部分的中间部分添加一个新面板
//在上半部分的中间部分添加两个按钮(表格布局)
p3.add(btn5);
p3.add(btn6);
//在下半部分的中间部分添加四个按钮(表格布局)
p4.add(btn7);
p4.add(btn8);
p4.add(btn9);
p4.add(btn10);
frame.setLayout(new GridLayout(2,1));//窗口布局设置为表格布局,分为上下两部分
//在窗口添加面板组件
frame.add(p1);
frame.add(p2);
frame.setVisible(true);//窗口可视化
//添加监听使得窗口可以关闭
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
具体的解释都在代码里面了,其中我觉得最重要的是面板的嵌套 即
p1.add(p3,BorderLayout.CENTER); p2.add(p4,BorderLayout.CENTER);
因为panel本身就是一个组件,即component,所以panel自己添加自己没毛病。
