JavaGui入门—布局的嵌套使用附实例
JavaGui布局
常见布局
- BorderLayout(边界布局)
- BorderLayout.EAST
- BorderLayout.WAST
- BorderLayout.NORTH
- BorderLayout.SNUTH
- FlowLayout(流式布局)
- FlowLayout.LEFT
- FlowLayout.CENTER
- FlowLayout.RIGHT
- GridLayout(表格布局)
- GridLayout(行,列)
- BoxLayout(盒子布局)
- null(空)
布局嵌套实例
package Day08;
import java.awt.*;
public class Demo02 {
public static void main(String[] args) {
Frame frame=new Frame();
// frame.setBounds(100, 100, 500, 300);
frame.pack();
//pack函数,自适应大小
frame.setVisible(true);
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");
Panel panel1=new Panel();
Panel panel2=new Panel();
Panel panel3=new Panel();
Panel panel4=new Panel();
Panel panel5=new Panel();
//左面板
panel1.setLayout(new GridLayout(2,1));
panel1.add(btn10);
panel1.add(btn9);
//中上面板
panel2.setLayout(new GridLayout(2,1));
panel2.add(btn8);
panel2.add(btn7);
//中下面板
panel3.setLayout(new GridLayout(2,2));
panel3.add(btn6);
panel3.add(btn5);
panel3.add(btn4);
panel3.add(btn3);
//中面板,由panel2以及panel3构成
panel4.setLayout(new GridLayout(2,1));
panel4.add(panel2);
panel4.add(panel3);
//右面板
panel5.setLayout(new GridLayout(2,1));
panel5.add(btn2);
panel5.add(btn1);
//窗口采用表单布局,缺陷是未实现左右中面板大小不同
frame.setLayout(new GridLayout());
frame.add(panel5);
frame.add(panel4);
frame.add(panel1);
}
}
运行效果如图:

package Day08;
import java.awt.*;
public class Demo03 {
public static void main(String[] args) {
Frame frame=new Frame();
frame.pack();
frame.setVisible(true);
frame.setLayout(new GridLayout(2,1));
Panel up=new Panel(new BorderLayout());
Panel down=new Panel(new BorderLayout());
Panel upCenter=new Panel(new GridLayout(2,1));
Panel downCenter=new Panel(new GridLayout(2,2));
up.add(new Button("Eest----1"),BorderLayout.EAST);
up.add(new Button("West----1"),BorderLayout.WEST);
down.add(new Button("Eest----2"),BorderLayout.EAST);
down.add(new Button("West----2"),BorderLayout.WEST);
upCenter.add(new Button());
upCenter.add(new Button());
downCenter.add(new Button());
downCenter.add(new Button());
downCenter.add(new Button());
downCenter.add(new Button());
up.add(upCenter,BorderLayout.CENTER);
down.add(downCenter,BorderLayout.CENTER);
frame.add(up);
frame.add(down);
}
}
运行效果如图:


浙公网安备 33010602011771号