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自己添加自己没毛病。