package wei;
import java.awt.*; //添加AWT和Swing庫文件
import javax.swing.*; //Swing庫文件
public class LayoutTest extends JFrame //建立類LayouTest繼承於類JFrame
{
/**
*
*/
private static final long serialVersionUID = -7697840790790026847L;
JButton btn1,btn2,btn3,btn4,btn5;
JPanel mainPan;
FlowLayout fLayout;
GridLayout gLayput;
BorderLayout blayout;
CardLayout cLayout; //定義佈局方式;
public LayoutTest(String layoutstyle ) //定義構造函數
{
super("佈局方式"+layoutstyle);
mainPan=new JPanel();
fLayout=new FlowLayout(FlowLayout.LEFT);
GridLayout gLayout = new GridLayout(3,2);
blayout =new BorderLayout();
cLayout = new CardLayout(10,10); //創建4種佈局方式的對象;
if(layoutstyle =="fLayout")
mainPan.setLayout(fLayout);
else if(layoutstyle=="gLayout")
mainPan.setLayout(gLayout);
else if(layoutstyle=="bLayout")
mainPan.setLayout(blayout);
else if(layoutstyle=="cLayout")
mainPan.setLayout(cLayout);
else
System.out.print("佈局方式輸入錯誤!"); //判斷採用何種佈局方式;
getContentPane().add(mainPan);
btn1=new JButton("按鈕1");
btn2=new JButton("按鈕2");
btn3=new JButton("按鈕3");
btn4=new JButton("按鈕4");
btn5=new JButton("按鈕5"); //創建5個按鈕類的對象;
if(layoutstyle =="fLayout"||layoutstyle == "gLayout")
{
mainPan.add(btn1);
mainPan.add(btn2);
mainPan.add(btn3);
mainPan.add(btn4);
mainPan.add(btn5);
} //定義FlowLayout或者GridLayout的佈局方式;
if(layoutstyle =="bLayout"||layoutstyle == "cLayout")
{
mainPan.add(btn1,"East");
mainPan.add(btn2,"South");
mainPan.add(btn3,"West");
mainPan.add(btn4,"North");
mainPan.add(BorderLayout.CENTER,btn5);
}
setSize(250,150); //設置界面的高度和寬度
setVisible(true); //設置界面的可見性
setDefaultCloseOperation(EXIT_ON_CLOSE); //設置窗口關閉時的默認操作
}
public static void main(String[] args)
{
// TODO 自動生成的方法存根
new LayoutTest("fLayout");
new LayoutTest("gLayout");
new LayoutTest("bLayout");
new LayoutTest("cLayout");
}
}
“`
知識點:
佈局管理器;
FlowLayout佈局;
BorderLayout佈局;
CardLayout佈局;
GridLayout佈局;
GridBagLayout佈局;
NULL佈局;
在進行界面設計時,一般通過選擇合適的控件,並精心的設計這些控件的位置佈局來實現用戶界面,但是在程序運行過程中,例如如果表單被改變了大小,則控件的佈局也可能會隨着發生變化。如界面拉伸或者縮小的時候,則表單的內容會顯得非常不協調。爲了避免這種情況,java提供了佈局管理器(LayoutManager)來管理相關的組件,控制容器內的各個組件擺放狀態。這樣做既可以有序擺放組件,同時也可以在窗口發生變化時會自動更新版面並調整窗口的大小;