查看運(yùn)行結(jié)果
一般我們要生成一個(gè)窗口,通常是用Window的子類Frame來(lái)進(jìn)行實(shí)例化,而不是直接用到Window類。Frame的外觀就像我們平常在windows系統(tǒng)下見到的窗口,有標(biāo)題、邊框、菜單、大小等等。每個(gè)Frame的對(duì)象實(shí)例化以后,都是沒有大小和不可見的,因此必須調(diào)用setSize( )來(lái)設(shè)置大小,調(diào)用setVisible(true)來(lái)設(shè)置該窗口為可見的。
另外,AWT在實(shí)際的運(yùn)行過程中是調(diào)用所在平臺(tái)的圖形系統(tǒng),因此同樣一段AWT程序在不同的操作系統(tǒng)平臺(tái)下運(yùn)行所看到的圖形系統(tǒng)是不一樣的。例如在windows下運(yùn)行,則顯示的窗口是windows風(fēng)格的窗口;而在UNIX下運(yùn)行時(shí),則顯示的是UNIX風(fēng)格的窗口。
5.1.4 LayoutManager 布局管理器(1)
java為了實(shí)現(xiàn)跨平臺(tái)的特性并且獲得動(dòng)態(tài)的布局效果,java將容器內(nèi)的所有組件安排給一個(gè)"布局管理器"負(fù)責(zé)管理,如:排列順序,組件的大小、位置,當(dāng)窗口移動(dòng)或調(diào)整大小后組件如何變化等功能授權(quán)給對(duì)應(yīng)的容器布局管理器來(lái)管理,不同的布局管理器使用不同算法和策略,容器可以通過選擇不同的布局管理器來(lái)決定布局。 來(lái)源:www.examda.com
布局管理器主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout
例5.3
import java.awt.*;
public class ExGui{
private Frame f;
private Button b1;
private Button b2;
public static void main(String args[]){
ExGui that = new ExGui();
that.go();
}
public void go(){
f = new Frame("GUI example");
f.setLayout(new FlowLayout());
//設(shè)置布局管理器為FlowLayout
b1 = new Button("Press Me");
//按鈕上顯示字符"Press Me"
b2 = new Button("Don’t Press Me");
f.add(b1);
f.add(b2);
f.pack();
//緊湊排列,其作用相當(dāng)于setSize(),即讓窗口
盡量小,小到剛剛能夠包容住b1、b2兩個(gè)按鈕
f.setVisible(true);
}
}
1. FlowLayout
FlowLayout 是Panel,Applet的缺省布局管理器。其組件的放置規(guī)律是從上到下、從左到右進(jìn)行放置,如果容器足夠?qū)?,第一個(gè)組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個(gè)組件的右邊,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊。
構(gòu)造方法主要下面幾種:
FlowLayout(FlowLayout.RIGHT,20,40);
/*第一個(gè)參數(shù)表示組件的對(duì)齊方式,指組件在這一行中的位置是居中對(duì)齊、居右對(duì)齊還是居左對(duì)齊,第二個(gè)參數(shù)是組件之間的橫向間隔,第三個(gè)參數(shù)是組件之間的縱向間隔,單位是象素。*/
FlowLayout(FlowLayout.LEFT);
//居左對(duì)齊,橫向間隔和縱向間隔都是缺省值5個(gè)象素
FlowLayout();
//缺省的對(duì)齊方式居中對(duì)齊,橫向間隔和縱向間隔都是缺省值5個(gè)象素
例5.4
import java.awt.*;
public class myButtons{
public static void main(String args[])
{
Frame f = new Frame();
f.setLayout(new FlowLayout());
Button button1 = new Button("Ok");
Button button2 = new Button("Open");
Button button3 = new Button("Close");
f.add(button1);
f.add(button2);
f.add(button3);
f.setSize(300,100);
f.setVisible(true);
}
}
當(dāng)容器的大小發(fā)生變化時(shí),用FlowLayout管理的組件會(huì)發(fā)生變化,其變化規(guī)律是:組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化。例如上圖中有三個(gè)按鈕都處于同一行,但是如果把該窗口變窄,窄到剛好能夠放下一個(gè)按鈕,則第二個(gè)按鈕將折到第二行,第三個(gè)按鈕將折到第三行。按鈕"Open"本來(lái)在按鈕"OK"的右邊,但是現(xiàn)在跑到了下面,所以說"組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化"。
一般我們要生成一個(gè)窗口,通常是用Window的子類Frame來(lái)進(jìn)行實(shí)例化,而不是直接用到Window類。Frame的外觀就像我們平常在windows系統(tǒng)下見到的窗口,有標(biāo)題、邊框、菜單、大小等等。每個(gè)Frame的對(duì)象實(shí)例化以后,都是沒有大小和不可見的,因此必須調(diào)用setSize( )來(lái)設(shè)置大小,調(diào)用setVisible(true)來(lái)設(shè)置該窗口為可見的。
另外,AWT在實(shí)際的運(yùn)行過程中是調(diào)用所在平臺(tái)的圖形系統(tǒng),因此同樣一段AWT程序在不同的操作系統(tǒng)平臺(tái)下運(yùn)行所看到的圖形系統(tǒng)是不一樣的。例如在windows下運(yùn)行,則顯示的窗口是windows風(fēng)格的窗口;而在UNIX下運(yùn)行時(shí),則顯示的是UNIX風(fēng)格的窗口。
5.1.4 LayoutManager 布局管理器(1)
java為了實(shí)現(xiàn)跨平臺(tái)的特性并且獲得動(dòng)態(tài)的布局效果,java將容器內(nèi)的所有組件安排給一個(gè)"布局管理器"負(fù)責(zé)管理,如:排列順序,組件的大小、位置,當(dāng)窗口移動(dòng)或調(diào)整大小后組件如何變化等功能授權(quán)給對(duì)應(yīng)的容器布局管理器來(lái)管理,不同的布局管理器使用不同算法和策略,容器可以通過選擇不同的布局管理器來(lái)決定布局。 來(lái)源:www.examda.com
布局管理器主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout
例5.3
import java.awt.*;
public class ExGui{
private Frame f;
private Button b1;
private Button b2;
public static void main(String args[]){
ExGui that = new ExGui();
that.go();
}
public void go(){
f = new Frame("GUI example");
f.setLayout(new FlowLayout());
//設(shè)置布局管理器為FlowLayout
b1 = new Button("Press Me");
//按鈕上顯示字符"Press Me"
b2 = new Button("Don’t Press Me");
f.add(b1);
f.add(b2);
f.pack();
//緊湊排列,其作用相當(dāng)于setSize(),即讓窗口
盡量小,小到剛剛能夠包容住b1、b2兩個(gè)按鈕
f.setVisible(true);
}
}
1. FlowLayout
FlowLayout 是Panel,Applet的缺省布局管理器。其組件的放置規(guī)律是從上到下、從左到右進(jìn)行放置,如果容器足夠?qū)?,第一個(gè)組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個(gè)組件的右邊,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊。
構(gòu)造方法主要下面幾種:
FlowLayout(FlowLayout.RIGHT,20,40);
/*第一個(gè)參數(shù)表示組件的對(duì)齊方式,指組件在這一行中的位置是居中對(duì)齊、居右對(duì)齊還是居左對(duì)齊,第二個(gè)參數(shù)是組件之間的橫向間隔,第三個(gè)參數(shù)是組件之間的縱向間隔,單位是象素。*/
FlowLayout(FlowLayout.LEFT);
//居左對(duì)齊,橫向間隔和縱向間隔都是缺省值5個(gè)象素
FlowLayout();
//缺省的對(duì)齊方式居中對(duì)齊,橫向間隔和縱向間隔都是缺省值5個(gè)象素
例5.4
import java.awt.*;
public class myButtons{
public static void main(String args[])
{
Frame f = new Frame();
f.setLayout(new FlowLayout());
Button button1 = new Button("Ok");
Button button2 = new Button("Open");
Button button3 = new Button("Close");
f.add(button1);
f.add(button2);
f.add(button3);
f.setSize(300,100);
f.setVisible(true);
}
}
當(dāng)容器的大小發(fā)生變化時(shí),用FlowLayout管理的組件會(huì)發(fā)生變化,其變化規(guī)律是:組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化。例如上圖中有三個(gè)按鈕都處于同一行,但是如果把該窗口變窄,窄到剛好能夠放下一個(gè)按鈕,則第二個(gè)按鈕將折到第二行,第三個(gè)按鈕將折到第三行。按鈕"Open"本來(lái)在按鈕"OK"的右邊,但是現(xiàn)在跑到了下面,所以說"組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化"。