11.4 AWT常用组件

11.4.1 AWT常用组件

1.Button: 按钮,可接受单击操作。

2.Canvas:用于绘图的画布。

3.Checkbox:复选项框组件‘

4.CheckboxGroup:用于将多个Checkbox组件组合在一起。

5.Choice:下拉式 选择框组件。

6.Frame:窗口,在GUI程序里通过该类创建窗口。

7.Label:标签类,用于旋转提示性文本。

8.List:列表框组件,可以添加多顶条目。

9.Panel:不能单独存在的基本容器类,必须放到其他容器中。

10.Scrollbar:滑动条组件。

11.ScrollPane:带水平、垂直的滚动条的容器组件。

12.TextArea:多行文本域。

13.TextField:单行文本框。

11.4.2 对话框

对话框是Window类的子类,是一个容器类,属于特殊组件.对话框是可以独立存在的顶级窗口,用法跟窗口几乎完全一样.使用对话框注意两点:

1.对话框通常依赖其他窗口,就是通常有一个parent窗口.

2.对话框有非模式和模式两种.

对话框有多个重载构造器,构造器可能有如下三个参数:

owner:指定对话框所依赖 窗口.

title:指定对话框的窗口标题.

modal:指定该对话框是否是模式的,可以是true 可以是false

下面给出对话框使用示例:

import java.awt.*;

import java.awt.event.*;

public class TestDialog

{

Frame f = new Frame("测试");

Dialog d1 = new Dialog(f, "模式对话框" , true);

Dialog d2 = new Dialog(f, "非模式对话框" , false);

Button b1 = new Button("打开模式对话框");

Button b2 = new Button("打开非模式对话框");

Button b3 = new Button("测试");

public void init()

{

f.setBounds(300, 300 , 800, 600);

d1.setBounds(20 , 30 , 300, 400);

d2.setBounds(20 , 30 , 300, 400);

b1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

d1.setLayout(new BorderLayout());

d1.add(b3,BorderLayout.SOUTH);

d1.setVisible(true);

}

});

b2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

d2.setVisible(true);

}

});

f.add(b1);

f.add(b2 , BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

f.addWindowListener(new WindowAdapter()    //窗口关闭

{

public void windowClosing(WindowEvent arg0)

{

System.exit(1);

}

});

}

public static void main(String[] args)

{

new TestDialog().init();

}

}

Dialog类还有一个子类:FileDialog,它代表一个文件对话框,用于打开和保存文件,FileDialog也提供了几个构造器,分别可支持parent、title、mode三个构造参数,其中 parent、title用于指定对话框所属父窗口跟标题,mode用于指定该窗口用于打开和保存文件,支持如下两个参数:FileDialog.LOAD、FileDialog.SAVE。

FileDialog提供了如下两个方法来获取被打开/保存的文件路径。

1.getDirectory():获取被打开的/保存文件的绝对路径。

2.getFile();获取被打开的/保存文件的文件名。

给出示例如下:

import java.awt.*;

import java.awt.event.*;

public class TestFileDialog

{

Frame f = new Frame("测试");

FileDialog d1 = new FileDialog(f, "选择需要打开文件" , FileDialog.LOAD);

FileDialog d2 = new FileDialog(f, "选择保存文件的路径" , FileDialog.SAVE);

Button b1 = new Button("打开文件");

Button b2 = new Button("保存文件");

public void init()

{

b1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

d1.setVisible(true);

System.out.println(d1.getDirectory() + d1.getFile());

}

});

b2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

d2.setVisible(true);

System.out.println(d2.getDirectory() + d2.getFile());

}

});

f.add(b1);

f.add(b2 , BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

}

public static void main(String[] args)

{

new TestFileDialog().init();

}

}