Java Swing (五)如何使用佈局管理器組件(3)FlowLayout佈局管理器

  • 1、FlowLayout佈局管理器的策略:按照控件加入的先後順序從左到右排列,一行排滿了,再換下一行,然後繼續從左到右排列,每一行的組件都是居中排列的
  • 2、FlowLayout佈局管理的構造器
    1)FlowLayout():構造一個FlowLayout對象,它是居中對齊的,默認的水平和垂直間隙是5個單位
    2)FlowLayout(int align):構造一個FlowLayout對象,默認的水平和垂直間隙都是5個單位
    3)FlowLayout(int align,int h,int v):創建一個新的FlowLayout佈局管理器,它具有指定的對齊方式以及指定的水平和垂直間隙

下面代碼簡單的演示上面的規則:

import java.awt.FlowLayout;

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

public class Example03 {
	static final int WIDTH=300;
	static final int HEIGHT=200;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame frame=new JFrame("測試程序");
		frame.setSize(WIDTH,HEIGHT);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
		JPanel pane=new JPanel();
		frame.setContentPane(pane);
		
		JButton bt1=new JButton("港幣");
		JButton bt2=new JButton("人民幣");
		JButton bt3=new JButton("美元");
		JButton bt4=new JButton("歐元");
		JButton bt5=new JButton("英鎊");
		// 將中間容器的佈局管理器設置爲FlowLayout
		pane.setLayout(new FlowLayout());
		// 將五個按鈕分表按照FlowLayout佈局管理器方式添加到中間容器中
		pane.add(bt1);
		pane.add(bt2);
		pane.add(bt3);
		pane.add(bt4);
		pane.add(bt5);
		frame.pack();
	}
}

上述代碼運行結果如下:
在這裏插入圖片描述
下面的代碼示例演示將FlowLayout和BorderLayout佈局管理結合的場景,主要思路是將FlowLayout佈局管理器同頂層容器關聯,然後再其中添加五個BorderLayout佈局管理器,並在這5個佈局管理器中添加組件,代碼如下:

import java.awt.BorderLayout;
import java.awt.FlowLayout;

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

public class Example04 {
	static final int WIDTH=300;
	static final int HEIGHT=200;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame frame=new JFrame("測試程序");
		frame.setSize(WIDTH,HEIGHT);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
		JPanel pane=new JPanel();
		frame.setContentPane(pane);
		
		// 創建25個按鈕
		JButton b1=new JButton("港幣");
		JButton b2=new JButton("人民幣");
		JButton b3=new JButton("美元");
		JButton b4=new JButton("歐元");
		JButton b5=new JButton("英鎊");
		
		JButton b6=new JButton("主板");
		JButton b7=new JButton("內存");
		JButton b8=new JButton("鍵盤");
		JButton b9=new JButton("顯示器");
		JButton b10=new JButton("鼠標");
		
		JButton b11=new JButton("大米");
		JButton b12=new JButton("蔬菜");
		JButton b13=new JButton("稻子");
		JButton b14=new JButton("豬肉");
		JButton b15=new JButton("牛肉");
		
		JButton b16=new JButton("麪包");
		JButton b17=new JButton("蛋糕");
		JButton b18=new JButton("巧克力");
		JButton b19=new JButton("奶酪");
		JButton b20=new JButton("蘋果派");
		
		JButton b21=new JButton("筆記本");
		JButton b22=new JButton("電話");
		JButton b23=new JButton("辦公桌");
		JButton b24=new JButton("鋼筆");
		JButton b25=new JButton("文件夾");
		
		// 將中間容器的佈局管理器方式設置爲FlowLayout
		pane.setLayout(new FlowLayout());
		
		// 創建五個中間容器
		JPanel p1=new JPanel();
		JPanel p2=new JPanel();
		JPanel p3=new JPanel();
		JPanel p4=new JPanel();
		JPanel p5=new JPanel();
		
		// 將五個中間容器添加到上層中間容器
		pane.add(p1);
		pane.add(p2);
		pane.add(p3);
		pane.add(p4);
		pane.add(p5);
		
		// 每個中間容器的佈局管理器設置爲BorderLayout
		p1.setLayout(new BorderLayout());
		p2.setLayout(new BorderLayout());
		p3.setLayout(new BorderLayout());
		p4.setLayout(new BorderLayout());
		p5.setLayout(new BorderLayout());
		
		// 將1-5個按鈕添加到p1中
		p1.add(b1,"North");
		p1.add(b2,"West");
		p1.add(b3,"South");
		p1.add(b4,"East");
		p1.add(b5,"Center");
		
		// 將6-10個按鈕添加到p2中
		p2.add(b6,"North");
		p2.add(b7,"West");
		p2.add(b8,"South");
		p2.add(b9,"East");
		p2.add(b10,"Center");
		
		// 將11-15個按鈕添加到p3中
		p3.add(b11,"North");
		p3.add(b12,"West");
		p3.add(b13,"South");
		p3.add(b14,"East");
		p3.add(b15,"Center");
		
		// 將16-20個按鈕添加到p4中去
		p4.add(b16,"North");
		p4.add(b17,"West");
		p4.add(b18,"South");
		p4.add(b19,"East");
		p4.add(b20,"Center");
		
		// 將21-25個按鈕添加到p5中去
		p5.add(b21,"North");
		p5.add(b22,"West");
		p5.add(b23,"South");
		p5.add(b24,"East");
		p5.add(b25,"Center");
		frame.pack();
	}
}

上述代碼運行結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章