布局管理器
-
流式布局 从左到右
public static void main(String[] args) {
Frame frame = new Frame();
//组件-按钮
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
//frame.setLayout(new FlowLayout());
//frame.setLayout(new FlowLayout(FlowLayout.LEFT));
frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
frame.setSize(500,500);
//把按钮添加进去
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

public class TestBorderLayout {
public static void main(String[] args) {
Frame frame = new Frame("TestBorderLayout");
Button east = new Button("east");
Button west = new Button("west");
Button south = new Button("south");
Button north = new Button("north");
Button centre = new Button("centre");
frame.add(east,BorderLayout.EAST);
frame.add(west ,BorderLayout.WEST);
frame.add(south ,BorderLayout.SOUTH);
frame.add(north ,BorderLayout.NORTH);
frame.add(centre,BorderLayout.CENTER);
frame.setSize(500,500);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}

public class TestGridLayout {
public static void main(String[] args) {
Frame frame = new Frame("TestBorderLayout");
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");
frame.setLayout(new GridLayout(3,2));
frame.add(btn1);
frame.add(btn2);
frame.add(btn3);
frame.add(btn4);
frame.add(btn5);
frame.add(btn6);
frame.pack();//java函數
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}

public static void main(String[] args) {
Frame frame = new Frame("TestLayoutExercise");
frame.setVisible(true);
frame.setLocation(200,300);
frame.setSize(400,400);
frame.setBackground(Color.CYAN);
frame.setLayout(new GridLayout(2,1));
//4个面板,上下一个,上面:左button、面板、右button
Panel panel = new Panel(new BorderLayout());
Panel pane2 = new Panel(new GridLayout(2,1));
Panel pane3 = new Panel(new BorderLayout());
Panel pane4 = new Panel(new GridLayout(2,2));
panel.add(new Button("bt1"),BorderLayout.EAST);
panel.add(new Button("bt2"),BorderLayout.WEST);
pane2.add(new Button("bt3"));
pane2.add(new Button("bt4"));
panel.add(pane2,BorderLayout.CENTER);
//下面的面板
pane3.add(new Button("bt5"),BorderLayout.EAST);
pane3.add(new Button("bt6"),BorderLayout.WEST);
pane4.add(new Button("bt7"));
pane4.add(new Button("bt8"));
pane4.add(new Button("bt9"));
pane4.add(new Button("bt10"));
pane3.add(pane4,BorderLayout.CENTER);
frame.add(panel);
frame.add(pane3);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

总结
- Frame是一个顶级窗口
- Panel无法单独显示,必须添加到某个容器中
- 布局管理器
- 流失
- 东西南北中
- 表格
- 标题,大小,定位,背景颜色,可见性,监听