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();
}
}