AWT组件
1、组件是构成图形用户界面的基本成分和核心元素。组件具有以下特性的对象:运行时可见,具有坐标位置、尺寸、字体、颜色等属性,能拥有及管理其他组件,可获得输入焦点可被操作,可响应事件等。
Component组件类是一个抽象类,它是AWT组件类层次结构的根类,实际使用的组件都是Component的子类。Component类提供对组件操作的通用方法,包括:获得或设置组件位置、大小、标题文本字体、标题文本颜色、背景颜色等属性值,响应鼠标或键盘事件,组件绘图等。
public abstract class Component implements ImageObserver,MenuContainer,Serializable{
public int getWidth() //获得组件宽度
public int getHeight() //获得组件高度
public void setSize(int width,int height) //设置组件宽度和高度
public int getX() //返回组件位置的X坐标值
public int getY() //返回组件位置的Y坐标值
public void setLocation(int x,int y) //设置组件坐标的位置,x、y指定组件左上角相对于容器的坐标位置
public void setBounds(int x,int y,int width,int height) //设置组件坐标位置和宽度、高度
public Color getBackground() //获得组件的背景颜色
public void setBackground(Color c) //设置组件的背景颜色
public Font getFont() //获得组件字体
public void setFont(Font f) //设置组件字体
public void setVisible(boolean b) //设置组件是否可见
}
2、容器
容器是一个特殊的组件,它能容纳其他组件,在其可视区域内显示这些组件。容器中各组件的大小和位置由容器的布局管理器进行控制。一个容器之中可以放置其他容器,使用多层容器可以表达复杂的布局。
public class Container extends Component{
public void setLayout(LayoutManager mgr) //设置布局管理器
public Component add(Component comp) //在容器中添加组件,用于任何布局
public void remove(Component comp) //从容器中移去指定组件
public void removeAll() //从容器中移去所有组件
}
3、窗口和面板
容器有窗口和面板两种,对应有Window窗口类和Panel面板类,它们都是Container容器的子类。
窗口有标题栏和关闭控制按钮,没有边框,没有菜单栏;窗口可独立存在,运行时可被移动,可改变大小。窗口是顶层容器,窗口不能包含在其他容器中。Window类声明如下:
public class Window extends Container implements Accessible
面板没有标题,没有边框,不可添加菜单栏;面板不能独立存在,必须包含在其他容器中。一个窗口可以包含多个面板,一个面板可以包含另一个面板。Panel类声明如下:
public class Panel extends Container implements Accessible{
public Panel() //默认FlowLayout布局
public Panel(LayoutManager layout) //layout指定布局管理器
}
4、框架和对话框
Window窗口类的子类主要有:Frame框架和Dialog对话框。
Java Application 应用程序使用Frame作为主窗口,Frame带有最大化和最小化控制按钮。Frame 类声明如下:
public class Frame extends Window implements MenuContainer{
public Frame()
public Frame(String title) //title指定框架标题
public String getTitle(String title) //获取框架标题
public void setTitle(String title) //设置或修改框架标题
public void setResizable(boolean b) //设置框架是否改变大小
public void setBackground(Color c) //设置框架背景颜色
}
Frame类实例化时默认是不可见的、最小化的,通常用setSize()。
对话框不能作为应用程序的主窗口,它通常依附于一个框架,当框架关闭时,对话框也关闭。对话框界面比框架简单,没有最大化和最小化控制按钮。对话框可以被设置为模式窗口,特点是总在最前面,如果不关闭模式对话框,则不能对其他窗口进行操作。
public class Dialog extends Window{
public Dialog(Frame owner) //owner指明拥有对话框的框架
public Dialog(Frame owner,String title) //title指定对话框标题
public Dialog(Frame owner,boolean modal) //modal指定模式窗口,默认false
public Dialog(Frame owner,String title,boolean modal)
}
Frame和Dialog实例默认是白色背景、最小化的、不可见的,调用setSize()方法设定窗口大小,调用setBackground()方法设置背景颜色,调用setVisible(true)方法使窗口可见。
5、标签
Label标签组件用于显示文本信息。标签只能显示信息,不能用于输入。部分声明如下:
public class Label extends Compontent implements Accessible{
public static final int LEFT=0; //左对齐,默认值
public static final int CENTER=1; //居中
public static final int RIGHT=2; //右对齐
public Label()
public Label(String text) //text指定显示字符串
public Label(String text,int alignment) // alignment指定对齐方式
public String getText() //获得显示字符串
public void setText(String text) //设定显示字符串
}
其中,text指定显示字符串,alignment指定对齐方式,取值为Label的常量:LEFT(左对齐,默认值)、RIGHT(右对齐)、CENTER(居中)。
6、文本行
TextField文本行是一个单行文本编辑框,用于输入一行文字。部分声明如下:
public class TextField extends TextComponent{
public TextField()
public TextField(String text)
public TextField(int columns)
public TextField(String text,int columns)
}
TextField从其父类TextComponent中继承了获得和设置文本内容的getText()、setText()等方法。TextComponent类及其声明的方法如下:
public class TextComponent extends Component implements Accessible{
public String getText() //获得文本行字符串
public void setText(String text) // 设置文本行字符串
public void setEditable(boolean b) //设置是否可以编辑,b默认true,可编辑
public boolean isEditable() //判断文本行是否可编辑
}
7、按钮
Button按钮用于执行一种特定操作。Button类及其声明的方法如下:
public class Button extends Component implements Accessible{
public Button(String text)
}
图形用户界面的应用程序运行时所产生的错误和异常,分别由java.awt包中的AWTException和AWTError类处理。