布局
java为frame界面提供了3种布局,分别是流式布局、东西南北中和表格。
流式布局
流式布局有3种对齐方式,分别是左、中、右。
以下代码采用左流式布局:
package com.cxf.gui;
import java.awt.*;
public class Demo5 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setBounds(400,400,400,400);
frame.setBackground(Color.cyan);
frame.setVisible(true);
frame.setLayout(new FlowLayout(FlowLayout.LEFT));
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
frame.add(button1);
frame.add(button2);
frame.add(button3);
}
}
输出结果:
代码通过第12行的setLayout方法来设置布局,FlowLayout表示流式布局,LEFT表示流式布局的左对齐。
只需把LEFT改为CENTER和RIGHT就能实现居中对齐和右对齐。
居中对齐输出结果:
右对齐输出结果:
东西南北中
以下代码采用东西南北中布局:
package com.cxf.gui;
import java.awt.*;
public class Demo5 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setBounds(400,400,400,400);
frame.setBackground(Color.cyan);
frame.setVisible(true);
//frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
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.CENTER);
frame.add(button2,BorderLayout.WEST);
frame.add(button3,BorderLayout.EAST);
frame.add(button4,BorderLayout.NORTH);
frame.add(button5,BorderLayout.SOUTH);
}
}
输出结果:
东西南北中的布局不需要setLayout方法,而是在第20-24行的add中添加BorderLayout.方位。
表格
以下代码采用表格布局:
package com.cxf.gui;
import java.awt.*;
public class Demo5 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setBounds(400,400,400,400);
frame.setBackground(Color.cyan);
frame.setVisible(true);
frame.setLayout(new GridLayout(2,3));
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);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
}
}
输出结果:
代码通过第12行的setLayout进行布局,GridLayout表示表格布局,它的第一个参数2表示行数,第二个参数3表示列数。