tonglin0325的个人主页

Java——布局:FlowLayout、BorderLayout、GridLayout、CardLayout

在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、绝对定位。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

//主类
//Function : FlowLayout_demo
public class FlowLayout_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为FlowLayout,所有的组件居中对齐,水平和垂直间距为3
f.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but = null;
for(int i=0;i<9;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.setSize(500, 200);
f.setVisible(true);
}

}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

//主类
//Function : BorderLayout_demo
public class BorderLayout_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为BorderLayout,水平和垂直间距为3
f.setLayout(new BorderLayout(3,3));
f.add(new JButton("东"),BorderLayout.EAST);
f.add(new JButton("西"),BorderLayout.WEST);
f.add(new JButton("南"),BorderLayout.SOUTH);
f.add(new JButton("北"),BorderLayout.NORTH);
f.add(new JButton("中"),BorderLayout.CENTER);
f.pack(); //根据组件自动调整窗体的大小
f.setVisible(true);
}

}

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

//主类
//Function : GridLayout_demo
public class GridLayout_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
//设置窗体中的布局管理器为GridLayout,3乘以5,水平和垂直间距为3
f.setLayout(new GridLayout(3,5,3,3));
JButton but = null;
for(int i=0;i<13;i++){
but = new JButton("按钮--"+i);
f.add(but);
}
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
}

}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

//主类
//Function : CardLayout_demo
public class CardLayout_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //取得窗体容器
CardLayout card = new CardLayout(); //定义布局管理器
f.setLayout(card);
cont.add(new JLabel("东123456789",JLabel.CENTER),"first");
cont.add(new JLabel("西123456789",JLabel.CENTER),"second");
cont.add(new JLabel("南123456789",JLabel.CENTER),"third");
cont.add(new JLabel("北123456789",JLabel.CENTER),"fourth");
cont.add(new JLabel("中123456789",JLabel.CENTER),"fifth");
f.pack(); //根据组件自动调整窗体大小
f.setVisible(true);
card.show(cont, "third");
for(int i=0;i<5;i++){ //循环显示每张卡片
try{
Thread.sleep(3000);
}catch(InterruptedException e){
}
card.next(cont);
}

}

}

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

//主类
//Function : AbsoluteLayout_demo
public class AbsoluteLayout_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
f.setLayout(null); //绝对定位
JLabel title = new JLabel("标签对象"); //建立标签对象
JButton enter = new JButton("进入"); //建立按钮对象
JButton help = new JButton("帮助");
f.setSize(200,90); //设置窗体大小
title.setBounds(45,5,150,20); //设置组件的位置及其大小
enter.setBounds(10,30,80,20); //设置组件的位置及其大小
help.setBounds(100,30,80,20); //设置组件的位置及其大小
f.add(title);
f.add(enter);
f.add(help);
f.setVisible(true);

}

}