java Swing(頂級容器和常用佈局管理器)

一、Swing容器JFrame

(又叫窗口,不能放在其他容器之中)
常用構造方法JFrame("String title")
eg: JFrame frame = new JFrame("這是窗口標題");
在這裏插入圖片描述

二、Swing容器JDialog

(又叫對話框)

  • 模態對話框:用戶必須處理完該對話框後才能與其他對話框進行交互;
  • 非模態對話框:允許用戶處理對話框的同時與其他窗口交互;

常用構造方法:
JDialog(Frame owner);
JDialog(Frame owner,String title,boolean modal);
owner爲對話框所有者(頂級窗口JFrame);
modal爲true就是模態對話框,false爲非模態對話框;不指定默認爲false。

三、Swing常見佈局管理器

(不能單獨存在必須放在容器中)

1.BorderLayout(邊界佈局管理器)

將容器劃分爲5個區域:
在這裏插入圖片描述
向BorderLayout佈局管理器中添加組件時用到的方法:
add(Component comp,Object constrains);
comp:表示要添加的組件;constrains:添加到佈局中的位置;
示例:

JFrame f = new JFrame("BorderLayout");
// 設置窗體中的佈局管理器爲BorderLayout
f.setLayout(new BorderLayout());
f.setSize(300, 300);     // 設置窗體大小
f.setLocation(300, 200); // 設置窗體顯示的位置
// 將按鈕組件添加到窗體中,並設置按鈕所在的區域
f.add(new JButton("PAGE_START"), BorderLayout.PAGE_START);
f.add(new JButton("PAGE_END"), BorderLayout.PAGE_END);
f.add(new JButton("LINE_START"), BorderLayout.LINE_START);
f.add(new JButton("LINE_END"), BorderLayout.LINE_END);
f.add(new JButton("CENTER"), BorderLayout.CENTER);
f.setVisible(true);  // 設置窗體可見
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

在這裏插入圖片描述
注:當不指定添加到哪個區域時,默認添加到CENTER區域,且後續添加會覆蓋之前放入的組件。

2.FlowLayout(流式佈局管理器)

(從左向右放置,在到達邊界時會自動換行,且組件會隨着窗口縮放而改變位置,即換行)

常用構造方法:FlowLayout(int align,int hgap,int vgap);
align:對齊方式;hgap:組件水平間距;vgap:組件垂直間距。

		JFrame f = new JFrame("Flowlayout"); 
		// 設置窗體中的佈局管理器爲FlowLayout,
		// 所有組件左對齊,水平間距爲20,垂直間距爲30
		f.setLayout(new FlowLayout(FlowLayout.LEFT, 20, 30));
		f.setSize(400, 200);                 // 設置窗體大小
		f.setLocation(300, 200);             // 設置窗體顯示的位置
		// 向容器添加組件
		f.add(new JButton("第1個按鈕"));  
		f.add(new JButton("第2個按鈕"));
		f.add(new JButton("第3個按鈕"));  
		f.add(new JButton("第4個按鈕"));
		f.add(new JButton("第5個按鈕"));  
		f.setVisible(true);                  // 設置窗體可見
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

在這裏插入圖片描述

3.GirdLayout(網格佈局管理器)

(使用縱橫線將容器分爲n行m列大小相等的網格,排列順序爲從左至右,從上至下)
常用構造方法:GirdLayout(int rows,int cols,int hgap,int vgap);

JFrame f = new JFrame("GridLayout");
		f.setLayout(new GridLayout(3, 3, 20, 30));  // 設置該窗體爲3*3的網格
		f.setSize(300, 300);                // 設置窗體大小
		f.setLocation(400, 300);
		// 下面的代碼是循環添加8個按鈕組件到GridLayout容器中
		for (int i = 1; i < 9; i++) {
			Button btn = new Button("btn" + i);
			f.add(btn);                     
		}
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

在這裏插入圖片描述

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