GUI学习——三种布局管理
一:流式布局
代码演示:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestFlowLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
frame.add(panel);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 组件 - 按钮
Button buttonOne = new Button("ButtonOne");
Button buttonTwo = new Button("ButtonTwo");
Button buttonThree = new Button("ButtonThree");
// 设置流式布局
frame.setLayout(new FlowLayout());
//frame.setLayout(new FlowLayout(FlowLayout.LEFT));// 默认居中 可以改成FlowLayout.LEFT
frame.setSize(200,200);
// 把按钮添加上去
frame.add(buttonOne);
frame.add(buttonTwo);
frame.add(buttonThree);
frame.setVisible(true);
}
}
实例:
二:东西南北布局
代码演示:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestBorderLayout {
public static void main(String[] args) {
Frame frame = new Frame("TestBorderLayout");
frame.setBounds(500,500,500,500);
Panel panel1 = new Panel();
frame.add(panel1);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Button button1 = new Button("Button1");// 东
Button button2 = new Button("Button2");// 西
Button button3 = new Button("Button3");// 南
Button button4 = new Button("Button4");// 北
Button button5 = new Button("Button5");// 中
frame.add(button1,BorderLayout.EAST);
frame.add(button2,BorderLayout.WEST);
frame.add(button3,BorderLayout.SOUTH);
frame.add(button4,BorderLayout.NORTH);
frame.add(button5,BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(500,500);
}
}
实例:
三:表格布局
代码演示:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestGridLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
frame.add(panel);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Button button = new Button("1");
Button button1 = new Button("2");
Button button2 = new Button("3");
Button button3 = new Button("4");
Button button4 = new Button("5");
frame.setLayout(new GridLayout(1,5));
frame.add(button);
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
//frame.setLayout(new GridLayout());
frame.setVisible(true);
frame.pack(); // Java函数 自动选择布局最优(选用)
}
}
实例;
课后习题 如何通过上面几种布局方式实现下面的样式:
代码演示:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestDemo01 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setVisible(true);
frame.setSize(400,400);
frame.setLocation(500,500);
frame.setBackground(new Color(252, 4, 4));
frame.setLayout(new GridLayout(2,1));
Panel panel1 = new Panel(new BorderLayout());
Panel panel2 = new Panel(new GridLayout(2,1));
Panel panel3 = new Panel(new BorderLayout());
Panel panel4 = new Panel(new GridLayout(2,1));
// 上面图形:
panel1.add(new Button("Left-Up"),BorderLayout.EAST);
panel1.add(new Button("Right-Up"),BorderLayout.WEST);
panel2.add(new Button("Center-Up"));
panel2.add(new Button("Center-Down"));
panel1.add(panel2,BorderLayout.CENTER);
// 下面图形:
panel3.add(new Button("Left-Down"),BorderLayout.EAST);
panel3.add(new Button("Right-Down"),BorderLayout.WEST);
for (int i = 0; i < 4; i++) {
panel4.add(new Button("for-" + i));
}
panel3.add(panel4,BorderLayout.CENTER);
frame.add(panel1);
frame.add(panel3);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}