java.awt.*是java语言中的第3大包,这里面包含着相当多的工具,像是字体,颜色,事件等等。首先我们看一个构造GUI程序的例子。实践:
import java.awt.*;
public class BorderExample {
private Frame f; //Frame是框架类,它起到布局的作用
private Button bn, bs, bw, be, bc; //按钮也是一个类每new一个Button对象就是一个按钮。
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();
}}
再看一个例子
import java.awt.*;
public class ComplexLayoutExample {
private Frame f;
private Panel p; //Panel是一个不能单独显示,必须放在Window或Frame中,是一个无边框的区域,其中可以放一些基本的组件。
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这两个按钮放在Frame边上
f.add(bw, BorderLayout.WEST);
f.add(bc, BorderLayout.CENTER);
// 为北侧的边上放按钮
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();
}}
大家看到了一些按钮出现在了窗口上,但是这些按钮都没有什么意义,有人会发现关闭的按钮不能用了,放心这是正常的。可以在DOS下面用ctrl+c来结束这个程序。那么我们想让这些按钮,有些作用啊,怎么办呢?那就是需要AWT的事件处理了。我们再来看一个例子。实践:
import java.awt.event.*;
//要想响应一个事件首先实现一个ActionListener的接口
public class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("动作发生");
System.out.println("按钮的命令是: "
+ e.getActionCommand());
}}
import java.awt.*;
public class TestButton {
private Frame f;
private Button b;
public TestButton() {
f = new Frame("测试");
b = new Button("点击我!");
//将一个动作命令设置到一个按钮上
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();
}