java.awt.*是java語言中的第3大包,這里面包含著相當(dāng)多的工具,像是字體,顏色,事件等等。首先我們看一個(gè)構(gòu)造GUI程序的例子。實(shí)踐:
import java.awt.*;
public class BorderExample {
private Frame f; //Frame是框架類,它起到布局的作用
private Button bn, bs, bw, be, bc; //按鈕也是一個(gè)類每new一個(gè)Button對(duì)象就是一個(gè)按鈕。
public BorderExample() {
f = new Frame("Border Layout");
bn = new Button("B1");
bs = new Button("B2");
bw = new Button("B3");
be = new Button("B4");
bc = new Button("B5");
}
public void launchFrame() {
f.add(bn, BorderLayout.NORTH); //后面大寫的NORTH是表明位置
f.add(bs, BorderLayout.SOUTH); //Layout稱為布局管理器
f.add(bw, BorderLayout.WEST);
f.add(be, BorderLayout.EAST);
f.add(bc, BorderLayout.CENTER);
f.setSize(200,200);
f.setVisible(true);
}
public static void main(String args[]) {
BorderExample guiWindow2 = new BorderExample();
guiWindow2.launchFrame();
}}
再看一個(gè)例子
import java.awt.*;
public class ComplexLayoutExample {
private Frame f;
private Panel p; //Panel是一個(gè)不能單獨(dú)顯示,必須放在Window或Frame中,是一個(gè)無邊框的區(qū)域,其中可以放一些基本的組件。
private Button bw, bc;
private Button bfile, bhelp;
public ComplexLayoutExample() {
f = new Frame("GUI example 3");
bw = new Button("West");
bc = new Button("Work space region");
bfile = new Button("File");
bhelp = new Button("Help");
}
public void launchFrame() {
// 將bw和bc這兩個(gè)按鈕放在Frame邊上
f.add(bw, BorderLayout.WEST);
f.add(bc, BorderLayout.CENTER);
// 為北側(cè)的邊上放按鈕
p = new Panel();
p.add(bfile);
p.add(bhelp);
f.add(p, BorderLayout.NORTH);
//將Panel打包使他可見
f.pack();
f.setVisible(true);
}
public static void main(String args[]) {
ComplexLayoutExample gui = new ComplexLayoutExample();
gui.launchFrame();
}}
大家看到了一些按鈕出現(xiàn)在了窗口上,但是這些按鈕都沒有什么意義,有人會(huì)發(fā)現(xiàn)關(guān)閉的按鈕不能用了,放心這是正常的。可以在DOS下面用ctrl+c來結(jié)束這個(gè)程序。那么我們想讓這些按鈕,有些作用啊,怎么辦呢?那就是需要AWT的事件處理了。我們?cè)賮砜匆粋€(gè)例子。實(shí)踐:
import java.awt.event.*;
//要想響應(yīng)一個(gè)事件首先實(shí)現(xiàn)一個(gè)ActionListener的接口
public class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("動(dòng)作發(fā)生");
System.out.println("按鈕的命令是: "
+ e.getActionCommand());
}}
import java.awt.*;
public class TestButton {
private Frame f;
private Button b;
public TestButton() {
f = new Frame("測(cè)試");
b = new Button("點(diǎn)擊我!");
//將一個(gè)動(dòng)作命令設(shè)置到一個(gè)按鈕上
b.setActionCommand("按鈕被按下");}
public void launchFrame() {
b.addActionListener(new ButtonHandler());
f.add(b,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
public static void main(String args[]) {
TestButton guiApp = new TestButton();
guiApp.launchFrame();
}