流布局:
FlowLayout构造方法:
FlowLayout()
构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位。
FlowLayout(int align)
构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位。
FlowLayout(int align, int hgap, int vgap)
创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。
注意:
align=0:表示每一行组件将按照左对齐排列
align=1:表示每一行组件将按照居中对齐排列
align=2:表示每一行组件将按照右对齐排列
代码:
package jframe;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.*;
public class jframe extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public jframe(){
new JFrame("title");
Container con = getContentPane();
setLayout(new FlowLayout(0,10,10)); //按照左对齐排列垂直水平间隔为10
for (int i=0;i<10;i++){
add(new JButton("Button"+i)); //添加组件
}
this.setVisible(true); //设置窗体可见
this.setSize(300, 300); //设置窗体大小
}
public static void main(String[] args) {
jframe a = new jframe();
}
}
如果改变窗体的大小其中组件的位置也会跟着改变
边界布局:
这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一。
代码演示:
package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.*;
public class jframe extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
String border [] = {BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.WEST,
BorderLayout.EAST,BorderLayout.CENTER};
String borderName [] = {"North","South","West","East","Center"};
public jframe(){
this.setTitle("test");
Container con = this.getContentPane();
this.setLayout(new BorderLayout()); //设置容器为边界布局管理器
for (int i=0;i<5;i++){
con.add(border[i],new JButton(borderName[i])); ///循环添加按钮,并设置按钮布局
}
this.setVisible(true);
this.setBounds(50, 50, 500, 300);
}
public static void main(String[] args) {
new jframe();
}
}
网格布局
GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。
构造方法摘要
GridLayout()
创建具有默认值的网格布局,即每个组件占据一行一列。
GridLayout(int rows, int cols)
创建具有指定行数和列数的网格布局。
GridLayout(int rows, int cols, int hgap, int vgap)
创建具有指定行数和列数的网格布局(hgap指定网格之间的水平间距,vgap指定网格之间垂直间距)。
代码演示:
package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class jframe extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public jframe(){
this.setTitle("test");
Container con = this.getContentPane();
this.setLayout(new GridLayout(7,3,5,5)); //设置7行3列垂直水平间隔为5
for (int i=0;i<20;i++){
con.add(new JButton("Button"+i)); //20个按钮
}
this.setVisible(true);
this.setBounds(50, 50, 300, 500);
}
public static void main(String[] args) {
new jframe();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。