Awt 简明教程
AWT Quick Guide
Graphical User Interface
图形用户界面 (GUI) 通过一些图形组件提供用户交互。例如,我们底层的操作系统还通过窗口、框架、面板、按钮、文本字段、文本区域、列表框、组合框、标签、复选框等提供 GUI。这些都称为组件。使用这些组件,我们可以为应用程序创建一个交互式用户界面。
GUI 根据激发的事件向最终用户提供结果。GUI 完全基于事件。例如,单击按钮、关闭窗口、打开窗口、在文本区域中键入内容等。这些活动称为事件。GUI 使最终用户可以更容易使用一个应用程序。它还使它们更有趣。
Basic Terminologies
Term |
Description |
Component |
组件是一个具有图形表示的对象,可以在屏幕上显示,并且可以与用户交互。例如,图形用户界面的按钮、复选框、列表和滚动条。 |
Container |
容器对象是可包含其他组件的组件。添加到容器中的组件将在列表中跟踪。列表的顺序将定义组件在容器中的从前到后的堆叠顺序。如果没有在向容器添加组件时指定索引,则会将该组件添加到列表的末端。 |
Panel |
窗格在其中为应用程序提供空间以附加任何其他组件,包括其他窗格。 |
Window |
窗口是显示在屏幕上的矩形区域。在不同的窗口中,我们可以执行不同的程序并显示不同的数据。窗口为我们提供多任务环境。构造窗口时,必须为其定义框架、对话框或另一个窗口作为其所有者。 |
Frame |
框架是一个带标题和边框的顶级窗口。框架的大小包括为边框指定的任何区域。框架包含 window 。并且它具有标题栏、菜单栏、边框和调整大小角。 |
Canvas |
画布组件表示屏幕上应用程序可以绘制到的空白矩形区域。应用程序还可以从画布组件的空白区域捕捉用户的输入事件。 |
Examples of GUI based Applications
以下是基于 GUI 的应用程序的一些示例。
-
Automated Teller Machine (ATM)
-
Airline Ticketing System
-
火车站的信息亭
-
Mobile Applications
-
Navigation Systems
Advantages of GUI over CUI
-
GUI 提供图形图标以进行交互,而 CUI(字符用户界面)提供简单的基于文本的界面。
-
GUI 使用户的应用程序更有趣和更有吸引力,而 CUI 则没有。
-
GUI 提供点击并执行环境,而在 CUI 中,我们每次都必须输入任务命令。
-
新用户可以通过视觉指示轻松地与图形用户界面交互,但在字符用户界面中则比较困难。
-
GUI 提供对文件系统和操作系统的许多控件,而在 CUI 中,你必须使用难以记住的命令。
-
GUI 中的窗口概念允许用户一次查看、操作和控制多个应用程序,而在 CUI 中用户一次只能控制一项任务。
-
GUI 提供多任务环境,CUI 也提供,但 CUI 并不像 GUI 那样提供相同的便利性。
-
使用 GUI 可以更容易地控制和导航操作系统,而在命令用户界面中,这会变得非常慢。GUI 可以轻松定制。
Environment Setup
本部分指导您如何在计算机上下载和设置 Java。请按照以下步骤设置环境。
Java SE 可以从链接 Download Java 中免费获得。所以你可以根据你的操作系统下载一个版本。
按照说明下载 Java 并运行 .exe 以在你的计算机上安装 Java。一旦在计算机上安装了 Java,就需要设置环境变量以指向正确的安装目录:
Setting up the path for windows 2000/XP:
假设你已将 Java 安装在 c:\Program Files\java\jdk 目录中:
-
右键单击“我的电脑”,然后选择“属性”。
-
单击“高级”选项卡下的“环境变量”按钮。
-
现在更改“路径”变量,使其还包含 Java 可执行文件的路径。例如,如果路径当前设置为“C:\WINDOWS\SYSTEM32”,则将路径更改为“C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin”。
Setting up the path for windows 95/98/ME:
假设你已将 Java 安装在 c:\Program Files\java\jdk 目录中:
-
编辑 'C:\autoexec.bat' 文件并在末尾添加以下行:'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'
Setting up the path for Linux, UNIX, Solaris, FreeBSD:
环境变量 PATH 应设置为指向已安装 Java 二进制文件的位置。如果您在执行此操作时遇到问题,请参阅您的 shell 文档。
例如,如果您用 bash 作为您的 shell,则您将向您 '.bashrc: export PATH=/path/to/java:$PATH' 的末尾添加以下行
Popular Java Editors:
要编写 Java 程序,您需要一个文本编辑器。市场上还有一些更复杂的 IDE,但目前,您可以考虑以下选项之一:
-
Notepad : 在 Windows 机器上,您可以使用任意简单的文本编辑器,例如记事本(推荐用于本教程)、TextPad。
-
*Netbeans :*这是一个 Java IDE,它是开源且免费的,可以从 http://www.netbeans.org/index.html 下载。
-
Eclipse : 也是一个 Java IDE,由 Eclipse 开源社区开发,可以从 http://www.eclipse.org/ 下载。
AWT Controls
每个用户界面都考虑以下三个主要方面:
-
UI elements :这是最终由用户看到并与其交互的核心视觉元素。GWT 提供了一大列表广泛使用且常见的元素,从基本到复杂,我们将在本教程中进行介绍。
-
Layouts: 它们定义了用户界面元素在屏幕上的组织方式,并为 GUI(图形用户界面)提供最终的外观和感觉。本章节中将介绍这部分内容。
-
Behavior: 这些是用户与 UI 元素交互时发生的事件。本章节中将介绍这部分内容。
每个 AWT 控件都从 Component 类继承属性。
AWT Component Class
Class declaration
以下是 java.awt.Component 类的声明:
public abstract class Component
extends Object
implements ImageObserver, MenuContainer, Serializable
Field
以下是 java.awt.Component 类的字段:
-
static float BOTTOM_ALIGNMENT ——getAlignmentY 的易用性常量。
-
static float CENTER_ALIGNMENT ——getAlignmentY 和 getAlignmentX 的易用性常量。
-
static float LEFT_ALIGNMENT ——getAlignmentX 的易用性常量。
-
static float RIGHT_ALIGNMENT ——getAlignmentX 的易用性常量。
-
static float TOP_ALIGNMENT ——getAlignmentY() 的易用性常量。
Class methods
S.N. |
Method & Description |
1 |
*boolean action(Event evt, Object what) *已弃用。从 JDK 1.1 版本开始,应将此组件注册为在激发操作事件的组件上的 ActionListener。 |
2 |
void add(PopupMenu popup) 将指定的弹出菜单添加到组件。 |
3 |
*void addComponentListener(ComponentListener l)*向指定的组件侦听器添加该组件的组件事件。 |
4 |
*void addFocusListener(FocusListener l)*向指定的焦点侦听器添加该组件在获取输入焦点时的焦点事件。 |
5 |
void addHierarchyBoundsListener(HierarchyBoundsListener l) 添加指定的层次结构边界侦听器,以在此容器所属的层次结构发生变更时从该组件接收层次结构边界事件。 |
6 |
void addHierarchyListener(HierarchyListener l) 添加指定的层次结构侦听器,以在此容器所属的层次结构发生变更时从该组件接收层次结构更改事件。 |
7 |
void addInputMethodListener(InputMethodListener l) 添加指定的输入方法侦听器,以从该组件接收输入方法事件。 |
8 |
void addKeyListener(KeyListener l) 添加指定的按键侦听器,以从该组件接收按键事件。 |
9 |
void addMouseListener(MouseListener l) 添加指定的鼠标侦听器,以从该组件接收鼠标事件。 |
10 |
void addMouseMotionListener(MouseMotionListener l) 添加指定的鼠标移动侦听器,以从该组件接收鼠标移动事件。 |
11 |
void addMouseWheelListener(MouseWheelListener l) 添加指定的鼠标滚轮侦听器,以从该组件接收鼠标滚轮事件。 |
12 |
void addNotify() 通过将其连接到本机屏幕资源,使此组件可显示。 |
13 |
void addPropertyChangeListener(PropertyChangeListener listener) 向侦听器列表添加 PropertyChangeListener。 |
14 |
void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) 向特定属性的侦听器列表添加一个 PropertyChangeListener。 |
15 |
void applyComponentOrientation(ComponentOrientation orientation) 设置此组件及其包含的所有组件的 ComponentOrientation 属性。 |
16 |
boolean areFocusTraversalKeysSet(int id) 返回是否针对此组件明确定义了给定焦点遍历操作的焦点遍历键集。 |
17 |
int checkImage(Image image, ImageObserver observer) 返回对指定图像的屏幕表示进行构建的状态。 |
18 |
int checkImage(Image image,int width,int height, ImageObserver observer) 返回对指定图像的屏幕表示进行构建的状态。 |
19 |
boolean contains(int x,int y) 检查此组件是否“包含”指定点,其中定义 x 和 y 相对于此组件的坐标系。 |
20 |
boolean contains(Point p) 检查此组件是否“包含”指定点,其中定义点的 x 和 y 坐标相对于此组件的坐标系。 |
21 |
Image createImage(ImageProducer producer) 根据指定的图像产生器创建图像。 |
22 |
Image createImage(int width,int height) 为双缓冲创建一张屏幕外的可绘制图像。 |
23 |
VolatileImage createVolatileImage(int width,int height) 为双缓冲创建一张易失的屏幕外的可绘制图像。 |
24 |
VolatileImage createVolatileImage(int width,int height, ImageCapabilities caps) 根据给定的功能创建一张易失的屏幕外的可绘制图像。 |
25 |
void deliverEvent(Event e) 已弃用。从 JDK 1.1 版本起,已被 dispatchEvent(AWTEvent e) 取代。 |
26 |
void disable() 已弃用。从 JDK 1.1 版本起,已被 setEnabled(boolean) 取代。 |
27 |
protected void disableEvents(long eventsToDisable) 禁止将指定的事件掩码参数定义的事件传递到该组件。 |
28 |
void dispatchEvent(AWTEvent e) 将事件派发到该组件或其一个子组件。 |
29 |
void doLayout() 提示布局管理器来布局该组件。 |
30 |
void enable() 已弃用。从 JDK 1.1 版本起,已被 setEnabled(boolean) 取代。 |
31 |
void enable(boolean b) 已弃用。从 JDK 1.1 版本起,已被 setEnabled(boolean) 取代。 |
32 |
protected void enableEvents(long eventsToEnable) 允许将指定的事件掩码参数定义的事件传递到该组件。 |
33 |
void enableInputMethods(boolean enable) 启用或禁用该组件的输入法支持。 |
34 |
protected void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) 支持报告 boolean 属性的绑定属性变化。 |
35 |
void firePropertyChange(String propertyName, byte oldValue, byte newValue) 报告绑定属性的更改。 |
36 |
void firePropertyChange(String propertyName, char oldValue, char newValue) 报告绑定属性的更改。 |
37 |
void firePropertyChange(String propertyName, double oldValue, double newValue) 报告绑定属性的更改。 |
38 |
void firePropertyChange(String propertyName, float oldValue, float newValue) 报告绑定属性的更改。 |
39 |
void firePropertyChange(String propertyName, long oldValue, long newValue) 报告绑定属性的更改。 |
40 |
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) 支持报告 Object 属性的绑定属性更改。 |
41 |
void firePropertyChange(String propertyName, short oldValue, short newValue) 报告了绑定属性更改。 |
42 |
AccessibleContext getAccessibleContext() 获取与此组件关联的可访问上下文。 |
43 |
float getAlignmentX() 返回沿 x 轴的对齐方式。 |
44 |
float getAlignmentY() 返回沿 y 轴的对齐方式。 |
45 |
Color getBackground() 获取此组件的背景颜色。 |
46 |
int getBaseline(int width,int height) 返回基线。 |
47 |
Component.BaselineResizeBehavior getBaselineResizeBehavior() 返回一个枚举,指示组件的基线在大小更改时如何更改。 |
48 |
Rectangle getBounds() 以矩形对象的形式获取此组件的边框。 |
49 |
Rectangle getBounds(Rectangle rv) 将此组件的边框存储到 return value rv 中并返回 rv。 |
50 |
return value 获取用于在输出设备上显示组件的 ColorModel 实例。 |
51 |
ColorModel getColorModel() 确定此组件或其一个直接子组件是否包含 (x, y) 位置,如果包含,则返回包含的组件。 |
52 |
Component getComponentAt(int x,int y) 返回包含指定点的组件或子组件。 |
53 |
Component getComponentAt(Point p) 返回在此组件上注册的所有组件监听器的数组。 |
54 |
ComponentListener[] getComponentListeners() 检索用于对该组件中的元素或文本进行排序的语言敏感的方向。 |
55 |
ComponentOrientation getComponentOrientation() 获取在组件中设置的游标。 |
56 |
Cursor getCursor() 获取与此组件关联的 DropTarget。 |
57 |
DropTarget getDropTarget() 返回作为此组件焦点遍历循环的焦点循环根的容器。 |
58 |
Container getFocusCycleRootAncestor() 返回在此组件上注册的所有焦点监听器的数组。 |
59 |
Set<AWTKeyStroke> getFocusTraversalKeys(int id) 返回此组件中给定遍历操作的一组焦点遍历键。 |
60 |
boolean getFocusTraversalKeysEnabled() 返回是否对此组件启用了焦点遍历键。 |
61 |
Font getFont() 获取此组件的字体。 |
62 |
FontMetrics getFontMetrics(Font font) 获取指定字体的字体指标。 |
63 |
Color getForeground() 获取此组件的前景色。 |
64 |
Graphics getGraphics() 为此组件创建图形上下文。 |
65 |
GraphicsConfiguration getGraphicsConfiguration() 获取与该组件关联的图形配置。 |
66 |
int getHeight() 返回此组件的当前高度。 |
67 |
HierarchyBoundsListener[] getHierarchyBoundsListeners() 返回在此组件上注册的所有层次结构边界侦听器的数组。 |
68 |
HierarchyListener[] getHierarchyListeners() 返回在此组件上注册的所有层次结构侦听器的数组。 |
69 |
boolean getIgnoreRepaint() |
70 |
InputContext getInputContext() 获取在此组件中输入文本时用于处理输入法通信的输入上下文。 |
71 |
InputMethodListener[] getInputMethodListeners() 返回在此组件上注册的所有输入法侦听器的数组。 |
72 |
InputMethodRequests getInputMethodRequests() 获取输入法请求处理程序,它支持对此组件的输入法的请求。 |
73 |
KeyListener[] getKeyListeners() 返回在此组件上注册的所有键侦听器的数组。 |
74 |
<T extends EventListener> T[] getListeners(Class<T> listenerType) 返回在此组件上当前注册为 FooListeners 的所有对象的数组。 |
75 |
Locale getLocale() 获取此组件的语言环境。 |
76 |
Point getLocation() 以点形式获取此组件的位置,指定组件的左上角。 |
77 |
Point getLocation(Point rv) 将此组件的原点 x,y 存储到 return value rv 中并返回 rv。 |
78 |
Point getLocationOnScreen() 以点形式获取此组件的位置,指定组件在屏幕坐标空间中的左上角。 |
79 |
Dimension getMaximumSize() 获得此组件的最大尺寸。 |
80 |
Dimension getMinimumSize() 获得此组件的最小尺寸。 |
81 |
MouseListener[] getMouseListeners() 返回注册在此组件上的所有鼠标侦听器的数组。 |
82 |
MouseMotionListener[] getMouseMotionListeners() 返回注册在此组件上的所有鼠标移动侦听器的数组。 |
83 |
Point getMousePosition() 如果组件直接位于鼠标指针下方,则返回鼠标指针在此组件坐标空间中的位置;否则,返回 null。 |
84 |
MouseWheelListener[] getMouseWheelListeners() 返回注册在此组件上的所有鼠标滚轮侦听器的数组。 |
85 |
String getName() 获得组件的名称。 |
86 |
Container getParent() 获得此组件的父组件。 |
87 |
java.awt.peer.ComponentPeer getPeer() Deprecated. As of JDK version 1.1, programs should not directly manipulate peers; replaced by boolean isDisplayable(). |
88 |
Dimension getPreferredSize() 获得此组件的首选尺寸。 |
89 |
PropertyChangeListener[] getPropertyChangeListeners() 返回注册在此组件上的所有属性更改侦听器的数组。 |
90 |
PropertyChangeListener[] getPropertyChangeListeners(String propertyName) 返回与指定属性关联的所有侦听器的数组。 |
91 |
Dimension getSize() 以 Dimension 对象的形式返回此组件的尺寸。 |
92 |
Dimension getSize(Dimension rv)Stores the width/height of this component into *return value rv 并返回 rv.* |
93 |
Toolkit getToolkit() 获得此组件的工具包。 |
94 |
Object getTreeLock() 获取此组件的锁定对象(拥有线程同步监视器的对象),用于 AWT 组件树和布局操作。 |
95 |
int getWidth() 返回此组件当前的宽度。 |
96 |
int getX() 返回组件原点的当前 x 坐标。 |
97 |
int getY() 返回组件原点的当前 y 坐标。 |
98 |
boolean gotFocus(Event evt, Object what) 已弃用。从 JDK 1.1 版本开始,被 processFocusEvent(FocusEvent) 替换。 |
99 |
boolean handleEvent(Event evt) 已弃用。从 JDK 1.1 版本开始,被 processEvent(AWTEvent) 替换。 |
100 |
boolean hasFocus() 如果此组件是焦点所有者,则返回 true。 |
101 |
void hide() 已弃用。从 JDK 1.1 版本开始,被 setVisible(boolean) 替换。 |
102 |
boolean imageUpdate(Image img,int infoflags,int x,int y,int w,int h) 当图像改变时,重新绘制组件。 |
103 |
boolean inside(int x,int y) 已弃用。从 JDK 1.1 版本开始,被 contains(int, int) 替换。 |
104 |
void invalidate() Invalidates this component. |
105 |
boolean isBackgroundSet() 返回是否显式设置了此组件的背景色。 |
106 |
boolean isCursorSet() 返回是否显式设置了此组件的光标。 |
107 |
boolean isDisplayable() 确定此组件是否可显示。 |
108 |
boolean isDoubleBuffered() 如果此组件绘制到屏幕后将复制到的画布图像 ( buffer ),则返回 true。 |
109 |
boolean isEnabled() 确定此组件是否已启用。 |
110 |
boolean isFocusable() 返回此组件是否可获得焦点。 |
111 |
boolean isFocusCycleRoot(Container container) 返回指定的容器是否是此组件的焦点遍历循环中的焦点循环根。 |
112 |
boolean isFocusOwner() 如果此组件是焦点所有者,则返回 true。 |
113 |
boolean isFocusTraversable() 已弃用。从 1.4 开始,被 isFocusable() 替换。 |
114 |
boolean isFontSet() 返回是否显式设置了此组件的字体。 |
115 |
boolean isForegroundSet() 返回是否显式设置了此组件的前景色。 |
116 |
boolean isLightweight() 轻量级组件没有本机工具包对等项。 |
117 |
boolean isMaximumSizeSet() 如果最大大小已设置为非 null 值,则返回 true,否则返回 false。 |
118 |
boolean isMinimumSizeSet() 返回是否已使用非空值调用 setMinimumSize。 |
119 |
boolean isOpaque() 如果此组件完全不透明,则返回 true,默认情况下返回 false。 |
120 |
boolean isPreferredSizeSet() 如果首选大小已设置为非空值,则返回 true,否则返回 false。 |
121 |
boolean isShowing() 确定此组件是否在屏幕上显示。 |
122 |
boolean isValid() 确定此组件是否有效。 |
123 |
boolean isVisible() 确定此组件是否应在其父级可见时可见。 |
124 |
boolean keyDown(Event evt,int key) 已弃用。由 JDK 版本 1.1 中的 processKeyEvent(KeyEvent) 取代。 |
125 |
boolean keyUp(Event evt,int key) 已弃用。由 JDK 版本 1.1 中的 processKeyEvent(KeyEvent) 取代。 |
126 |
void layout() 已弃用。由 JDK 版本 1.1 中的 doLayout() 取代。 |
127 |
void list() 将此组件的列表打印到标准系统输出流 System.out。 |
128 |
void list(PrintStream out) 将此组件的列表打印到指定输出流中。 |
129 |
void list(PrintStream out,int indent) 从指定缩进处开始打印一个列表到指定的打印流中。 |
130 |
void list(PrintWriter out) 打印一个列表到指定的打印写入器中。 |
131 |
void list(PrintWriter out,int indent) 从指定缩进处开始打印一个列表到指定的打印写入器中。 |
132 |
Component locate(int x,int y) 已弃用。由 JDK 版本 1.1 中的 getComponentAt(int, int) 取代。 |
133 |
Point location() 已弃用。由 JDK 版本 1.1 中的 getLocation() 取代。 |
134 |
boolean lostFocus(Event evt, Object what) 已弃用。由 JDK 版本 1.1 中的 processFocusEvent(FocusEvent) 取代。 |
135 |
boolean mouseDown(Event evt,int x,int y) 已弃用。由 JDK 版本 1.1 中的 processMouseEvent(MouseEvent) 取代。 |
136 |
boolean mouseDrag(Event evt,int x,int y) 已弃用。由 JDK 版本 1.1 中的 processMouseMotionEvent(MouseEvent) 取代。 |
137 |
boolean mouseEnter(Event evt,int x,int y) 已弃用。从 JDK 版本 1.1 开始,被 processMouseEvent(MouseEvent) 替换。 |
138 |
boolean mouseExit(Event evt,int x,int y) 已弃用。从 JDK 版本 1.1 开始,被 processMouseEvent(MouseEvent) 替换。 |
139 |
boolean mouseMove(Event evt,int x,int y) 已弃用。从 JDK 版本 1.1 开始,被 processMouseMotionEvent(MouseEvent) 替换。 |
140 |
boolean mouseUp(Event evt,int x,int y) 已弃用。从 JDK 版本 1.1 开始,被 processMouseEvent(MouseEvent) 替换。 |
141 |
void move(int x,int y) 已弃用。从 JDK 版本 1.1 开始,被 setLocation(int, int) 替换。 |
142 |
void nextFocus() 已弃用。从 JDK 版本 1.1 开始,被 transferFocus() 替换。 |
143 |
void paint(Graphics g) 绘制此组件。 |
144 |
void paintAll(Graphics g) 绘制此组件及其所有子组件。 |
145 |
boolean postEvent(Event e) 已弃用。从 JDK 版本 1.1 开始,被 dispatchEvent(AWTEvent) 替换。 |
146 |
boolean prepareImage(Image image,int width,int height, ImageObserver observer) 准备一个图像,使其在此组件上呈现,指定宽度和高度即可。 |
147 |
void print(Graphics g) 打印此组件。 |
148 |
void printAll(Graphics g) 打印此组件及其所有子组件。 |
149 |
protectedvoid processComponentEvent(ComponentEvent e) 通过将组件事件分派到所有已注册的 ComponentListener 对象,处理在此组件发生的组件事件。 |
150 |
protected void processEvent(AWTEvent e) 处理在此组件发生的事件。 |
151 |
protected void processFocusEvent(FocusEvent e) 通过将焦点事件分派到所有已注册的 FocusListener 对象,处理在此组件发生的焦点事件。 |
152 |
protected void processHierarchyBoundsEvent(HierarchyEvent e) 通过将层次界限事件分派到所有已注册的 HierarchyBoundsListener 对象来处理在此组件发生的层次界限事件。 |
153 |
protected void processHierarchyEvent(HierarchyEvent e) 通过将层次事件分派到所有已注册的 HierarchyListener 对象来处理在此组件发生的层次事件。 |
154 |
protectedvoid processInputMethodEvent(InputMethodEvent e) 通过将输入法事件分派到所有已注册的 InputMethodListener 对象来处理在此组件发生的输入法事件。 |
155 |
protected void processKeyEvent(KeyEvent e) 通过将键盘事件分派到所有已注册的 KeyListener 对象来处理在此组件发生的键盘事件。 |
156 |
protected void processMouseEvent(MouseEvent e) 通过将鼠标事件分发到任何已注册的 MouseListener 对象,来处理此组件上发生的鼠标事件。 |
157 |
protected void processMouseMotionEvent(MouseEvent e) 通过将鼠标移动事件分发到任何已注册的 MouseMotionListener 对象,来处理此组件上发生的鼠标移动事件。 |
158 |
protected void processMouseWheelEvent(MouseWheelEvent e) 通过将鼠标滚轮事件分发到任何已注册的 MouseWheelListener 对象,来处理此组件上发生的鼠标滚轮事件。 |
159 |
void remove(MenuComponent popup) 从组件中移除指定的弹出菜单。 |
160 |
void removeComponentListener(ComponentListener l) 移除指定的组件侦听器,以便其不再从此组件接收组件事件。 |
161 |
void removeFocusListener(FocusListener l) 移除指定的焦点侦听器,以便其不再从此组件接收焦点事件。 |
162 |
void removeHierarchyBoundsListener(HierarchyBoundsListener l) 移除指定的层次结构边界侦听器,以便其不再从此组件接收层次结构边界事件。 |
163 |
void removeHierarchyListener(HierarchyListener l) 移除指定的层次结构侦听器,以便其不再从此组件接收层次结构更改事件。 |
164 |
void removeInputMethodListener(InputMethodListener l) 移除指定的输入法侦听器,以便其不再从此组件接收输入法事件。 |
165 |
void removeKeyListener(KeyListener l) 移除指定的键盘侦听器,以便其不再从此组件接收键盘事件。 |
166 |
void removeMouseListener(MouseListener l) 移除指定的鼠标侦听器,以便其不再从此组件接收鼠标事件。 |
167 |
void removeMouseMotionListener(MouseMotionListener l) 移除指定的鼠标移动侦听器,以便其不再从此组件接收鼠标移动事件。 |
168 |
void removeMouseWheelListener(MouseWheelListener l) 移除指定的鼠标滚轮侦听器,以便其不再从此组件接收鼠标滚轮事件。 |
169 |
void removeNotify() 通过销毁组件的本机屏幕资源,使其不可显示。 |
170 |
void removePropertyChangeListener(PropertyChangeListener listener) 从侦听器列表中移除 PropertyChangeListener。 |
171 |
void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) 从特定属性的侦听器列表中移除 PropertyChangeListener。 |
172 |
void repaint() Repaints this component. |
173 |
void repaint(int x,int y,int width,int height) 重新绘制此组件的指定矩形。 |
174 |
void repaint(long tm) 重新绘制组件。 |
175 |
void repaint(long tm,int x,int y,int width,int height) 在 tm 毫秒内重新绘制此组件的指定矩形。 |
176 |
void requestFocus() 请求此组件获取输入焦点,并且此组件的顶级祖先成为焦点窗口。 |
177 |
protected boolean requestFocus(boolean temporary) 请求此组件获取输入焦点,并且此组件的顶级祖先成为焦点窗口。 |
178 |
boolean requestFocusInWindow() 如果此组件的顶级祖先已经是焦点窗口,则请求此组件获取输入焦点。 |
179 |
protected boolean requestFocusInWindow(boolean temporary) 如果此组件的顶级祖先已经是焦点窗口,则请求此组件获取输入焦点。 |
180 |
void reshape(int x,int y,int width,int height) 不推荐使用。自 JDK 版本 1.1 起,用 setBounds(int, int, int, int) 替换。 |
181 |
void resize(Dimension d) 不推荐使用。自 JDK 版本 1.1 起,用 setSize(Dimension) 替换。 |
182 |
void resize(int width,int height) 不推荐使用。自 JDK 版本 1.1 起,用 setSize(int, int) 替换。 |
183 |
void setBackground(Color c) 设置此组件的背景色。 |
184 |
void setBounds(int x,int y,int width,int height) 移动并调整此组件的大小。 |
185 |
void setBounds(Rectangle r) 移动并调整此组件的大小以符合新的边界矩形 r。 |
186 |
void setComponentOrientation(ComponentOrientation o) 设置语言敏感方向,用于对该组件中的元素或文本进行排序。 |
187 |
void setCursor(Cursor cursor) 将光标图像设置为指定的光标。 |
188 |
void setDropTarget(DropTarget dt) 与此组件关联 DropTarget。 |
189 |
void setEnabled(boolean b) 根据参数 b 的值,启用或禁用此组件。 |
190 |
void setFocusable(boolean focusable) 将此组件的可聚焦状态设置为指定的值。 |
191 |
void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) 为此组件设置给定遍历操作的焦点遍历键。 |
192 |
void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled) 设置是否为此组件启用焦点遍历键。 |
193 |
void setFont(Font f) 设置此组件的字体。 |
194 |
void setForeground(Color c) 设置此组件的前景色。 |
195 |
void setIgnoreRepaint(boolean ignoreRepaint) 设置是否忽略从操作系统接收到的绘图消息。 |
196 |
void setLocale(Locale l) 设置此组件的区域设置。 |
197 |
void setLocation(int x,int y) 将此组件移动到新位置。 |
198 |
void setLocation(Point p) 将此组件移动到新位置。 |
199 |
void setMaximumSize(Dimension maximumSize) 将此组件的最大大小设置为常量值。 |
200 |
void setMinimumSize(Dimension minimumSize) 将此组件的最小大小设置为常量值。 |
201 |
void setName(String name) 将组件的名称设置为指定字符串。 |
202 |
void setPreferredSize(Dimension preferredSize) 将此组件的首选大小设置为常量值。 |
203 |
void setSize(Dimension d) 调整此组件的大小,使其具有宽度 d.width 和高度 d.height。 |
204 |
void setSize(int width,int height) 调整此组件的大小,使其具有宽度 width 和高度 height。 |
205 |
void setVisible(boolean b) 根据参数 b 的值显示或隐藏此组件。 |
206 |
void show() 已弃用。自JDK版本1.1起,已被setVisible(boolean)取代。 |
207 |
void show(boolean b) 已弃用。自JDK版本1.1起,已被setVisible(boolean)取代。 |
208 |
Dimension size() 已弃用。自JDK版本1.1起,已被getSize()取代。 |
209 |
String toString() 返回此组件及其值的字符串表示形式。 |
210 |
void transferFocus() 将焦点转移到下一个组件,就好像此组件是焦点所有者一样。 |
211 |
void transferFocusBackward() 将焦点转移到上一个组件,就好像此组件是焦点所有者一样。 |
212 |
void transferFocusUpCycle() 将焦点向上转移一个焦点遍历周期。 |
213 |
void update(Graphics g) 更新此组件。 |
214 |
void validate() 确保此组件具有有效的布局。 |
215 |
Rectangle bounds() 已弃用。自 JDK 版本 1.1 起,已被 getBounds() 取代。 |
216 |
protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent) 可能会合并将要发布的事件与现有事件。 |
217 |
protected String paramString() 返回一个表示此组件状态的字符串。 |
218 |
protected void firePropertyChange(String propertyName,int oldValue,int newValue) 支持针对整数属性报告绑定属性更改。 |
219 |
Dimension preferredSize() 已弃用。自 JDK 版本 1.1 起,已被 getPreferredSize() 取代。 |
220 |
boolean prepareImage(Image image, ImageObserver observer) 准备可在该组件上渲染的图像。 |
221 |
Dimension minimumSize() 已弃用。自 JDK 版本 1.1 起,已被 getMinimumSize() 取代。 |
AWT Label Class
Introduction
Label 是一个被动控件,因为它在用户访问时不会创建任何事件。Label 控件是 Label 的对象。Label 显示一行只读文本。但是,该文本可以由应用程序员进行更改,但终端用户无法以任何方式进行更改。
Class declaration
以下是 java.awt.Label 类的声明:
public class Label
extends Component
implements Accessible
Field
以下是 java.awt.Component 类的字段:
-
static int CENTER — 表示应将标签居中。
-
static int LEFT — 表示应将标签左对齐。
-
static int RIGHT — 表示应将标签右对齐。
Class constructors
S.N. |
Constructor & Description |
1 |
*Label() *构造一个空标签。 |
2 |
*Label(String text) *使用指定文本字符串构建一个新的标签,左对齐。 |
3 |
*Label(String text, int alignment) *构建一个新标签以使用指定对齐方式显示指定文本字符串。 |
Class methods
S.N. |
Method & Description |
1 |
*void addNotify() *为该标签创建对等项。 |
2 |
*AccessibleContext getAccessibleContext() *获取与此 Label 关联的 AccessibleContext。 |
3 |
*int getAlignment() *获取此标签的当前对齐方式。 |
4 |
*String getText() *获取此标签的文本。 |
5 |
*protected String paramString() *返回表示此标签状态的字符串。 |
6 |
*void setAlignment(int alignment) *将此标签的对齐方式设置为指定的对齐方式。 |
7 |
*void setText(String text) *将此标签的文本设置为指定的文本。 |
Label Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showLabelDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showLabelDemo(){
headerLabel.setText("Control in action: Label");
Label label = new Label();
label.setText("Welcome to TutorialsPoint AWT Tutorial.");
label.setAlignment(Label.CENTER);
label.setBackground(Color.GRAY);
label.setForeground(Color.WHITE);
controlPanel.add(label);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Button Class
Introduction
按钮是一个有标签的控件组件,并在按下时生成一个事件。当按钮被按下并释放时,AWT 通过调用按钮上的 processEvent 来向按钮发送 ActionEvent 的一个实例。按钮的 processEvent 方法接收针对按钮的所有事件;它通过调用自己的 processActionEvent 方法来传递一个动作事件。后者方法将动作事件传递给对由此按钮生成的动作事件已登记兴趣的任何动作侦听器。
如果一个应用程序需要基于按钮被按下并释放来执行一些动作,则它应实现 ActionListener 并调用按钮的 addActionListener 方法来注册新侦听器以接收来自此按钮的事件。应用程序可以利用按钮的动作命令作为消息传递协议。
Class declaration
以下是 java.awt.Button 类的声明:
public class Button
extends Component
implements Accessible
Class constructors
S.N. |
Constructor & Description |
1 |
*Button() *构造一个按钮,其标签为空字符串。 |
2 |
*Button(String text) *构造一个带有指定标签的新按钮。 |
Class methods
S.N. |
Method & Description |
1 |
*void addActionListener(ActionListener l) *添加指定的动作侦听器以接收来自此按钮的动作事件。 |
2 |
*void addNotify() *创建按钮的对等体。 |
3 |
*AccessibleContext getAccessibleContext() *获取与此按钮相关联的 AccessibleContext。 |
4 |
*String getActionCommand() *返回此按钮触发的动作事件的命令名称。 |
5 |
*ActionListener[] getActionListeners() *返回在此按钮上注册的所有动作侦听器的数组。 |
6 |
*String getLabel() *获取此按钮的标签。 |
7 |
*<T extends EventListener> T[] getListeners(Class<T> listenerType) *返回当前作为此按钮上的 FooListeners 注册的所有对象的数组。 |
8 |
*protected String paramString() *返回表示此按钮的字符串。 |
9 |
*protected void processActionEvent(ActionEvent e) *通过将动作事件分发到任何已注册的 ActionListener 对象来处理在此按钮上发生的事件。 |
10 |
*protected void processEvent(AWTEvent e) *处理此按钮上的事件。 |
11 |
*void removeActionListener(ActionListener l) *删除指定的动作监听器,以便它不再从该按钮接收动作事件。 |
12 |
*void setActionCommand(String command) *设置此按钮引发的动作事件的命令名称。 |
13 |
*void setLabel(String label) *将按钮的标签设置为指定字符串。 |
Button Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showButtonDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showButtonDemo(){
headerLabel.setText("Control in action: Button");
Button okButton = new Button("OK");
Button submitButton = new Button("Submit");
Button cancelButton = new Button("Cancel");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Ok Button clicked.");
}
});
submitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Submit Button clicked.");
}
});
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Cancel Button clicked.");
}
});
controlPanel.add(okButton);
controlPanel.add(submitButton);
controlPanel.add(cancelButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT CheckBox Class
Class declaration
以下是 java.awt.Checkbox 类的声明:
public class Checkbox
extends Component
implements ItemSelectable,Accessible
Class constructors
S.N. |
Constructor & Description |
1 |
*Checkbox() *创建一个带有空字符串标签的复选框。 |
2 |
*Checkbox(String label) *创建一个带有指定标签的复选框。 |
3 |
*Checkbox(String label, boolean state) *创建一个带有指定标签的复选框,并设置指定状态。 |
4 |
*Checkbox(String label, boolean state, CheckboxGroup group) *构造一个带有指定标签、设置为指定状态且位于指定复选框组中的 Checkbox。 |
5 |
*Checkbox(String label, CheckboxGroup group, boolean state) *创建一个带有指定标签、位于指定复选框组中且设置为指定状态的复选框。 |
Class methods
S.N. |
Method & Description |
1 |
*void addItemListener(ItemListener l) *添加指定项目侦听器以接收此复选框的项目事件。 |
2 |
*void addNotify() *创建 Checkbox 对等项。 |
3 |
*AccessibleContext getAccessibleContext() *获取与此 Checkbox 关联的 AccessibleContext。 |
4 |
*CheckboxGroup getCheckboxGroup() *确定此复选框的组。 |
5 |
*ItemListener[] getItemListeners() *返回在这个复选框上注册的所有项目侦听器的数组。 |
6 |
*String getLabel() *获取这个复选框的标签。 |
7 |
*<T extends EventListener>T[] getListeners(Class<T> listenerType) *返回在这个复选框上当前注册为 FooListeners 的所有对象的数组。 |
8 |
*Object[] getSelectedObjects() *返回一个数组(长度 1),包含复选框标签,如果复选框未选中,则返回 null。 |
9 |
boolean getState() * Determines whether this check box is in the *on 或 off 状态。 |
10 |
*protected String paramString() *返回表示这个复选框状态的字符串。 |
11 |
*protected void processEvent(AWTEvent e) *处理这个复选框上的事件。 |
12 |
*protected void processItemEvent(ItemEvent e) *处理这个复选框上发生的项目事件,方法是将它们分发给任何已注册的 ItemListener 对象。 |
13 |
*void removeItemListener(ItemListener l) *移除指定的项目侦听器,以便项目侦听器不再收到来自这个复选框的项目事件。 |
14 |
*void setCheckboxGroup(CheckboxGroup g) *将此复选框的组设置为指定的复选框组。 |
15 |
*void setLabel(String label) *将此复选框的标签设置为字符串参数。 |
16 |
*void setState(boolean state) *将此复选框的状态设置为指定的状态。 |
CheckBox Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showCheckBoxDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showCheckBoxDemo(){
headerLabel.setText("Control in action: CheckBox");
Checkbox chkApple = new Checkbox("Apple");
Checkbox chkMango = new Checkbox("Mango");
Checkbox chkPeer = new Checkbox("Peer");
chkApple.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Apple Checkbox: "
+ (e.getStateChange()==1?"checked":"unchecked"));
}
});
chkMango.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Mango Checkbox: "
+ (e.getStateChange()==1?"checked":"unchecked"));
}
});
chkPeer.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Peer Checkbox: "
+ (e.getStateChange()==1?"checked":"unchecked"));
}
});
controlPanel.add(chkApple);
controlPanel.add(chkMango);
controlPanel.add(chkPeer);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT CheckBoxGroup Class
Class declaration
以下是 java.awt.CheckboxGroup 类的声明:
public class CheckboxGroup
extends Object
implements Serializable
Class methods
S.N. |
Method & Description |
1 |
*Checkbox getCurrent() *不推荐使用。从 JDK 1.1 版本开始,已由 getSelectedCheckbox() 替代。 |
2 |
*Checkbox getSelectedCheckbox() *获取这个复选框组中的当前选择。 |
3 |
void setCurrent(Checkbox box) 不推荐使用。从 JDK 1.1 版本开始,已由 setSelectedCheckbox(Checkbox) 替代。 |
4 |
*void setSelectedCheckbox(Checkbox box) *将此组中当前选中的复选框设置为指定的复选框。 |
5 |
*String toString() *返回此复选框组的字符串表示形式,包括其当前选择的值。 |
CheckBoxGroup Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showCheckBoxGroupDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showCheckBoxGroupDemo(){
headerLabel.setText("Control in action: CheckBoxGroup");
CheckboxGroup fruitGroup = new CheckboxGroup();
Checkbox chkApple = new Checkbox("Apple",fruitGroup,true);
Checkbox chkMango = new Checkbox("Mango",fruitGroup,false);
Checkbox chkPeer = new Checkbox("Peer",fruitGroup,false);
statusLabel.setText("Apple Checkbox: checked");
chkApple.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Apple Checkbox: checked");
}
});
chkMango.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Mango Checkbox: checked");
}
});
chkPeer.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Peer Checkbox: checked");
}
});
controlPanel.add(chkApple);
controlPanel.add(chkMango);
controlPanel.add(chkPeer);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT List Class
Class declaration
以下是 java.awt.List 类的声明:
public class List
extends Component
implements ItemSelectable, Accessible
Class constructors
S.N. |
Constructor & Description |
1 |
*List() *创建一个新的滚动列表。 |
2 |
*List(int rows) *创建一个新的滚动列表,初始化为指定数量的可见行。 |
3 |
*List(int rows, boolean multipleMode) *创建一个新的滚动列表,初始化为显示指定数量的行。 |
Class methods
S.N. |
Method & Description |
1 |
*void add(String item) *在滚动列表的末尾添加指定项目。 |
2 |
*void add(String item, int index) *将指定项目添加到索引指示位置的滚动列表中。 |
3 |
*void addActionListener(ActionListener l) *添加指定动作侦听器来接收来自此列表的动作事件。 |
4 |
*void addItem(String item) *已弃用。已替换为 add(String)。 |
5 |
*void addItem(String item, int index) *已弃用。已替换为 add(String, int)。 |
6 |
*void addItemListener(ItemListener l) *添加指定的项目侦听器以接收来自此列表的项目事件。 |
7 |
*void addNotify() *为该列表创建对等项。 |
8 |
*boolean allowsMultipleSelections() *已弃用。自 JDK 1.1 版起,已替换为 isMultipleMode()。 |
9 |
*void clear() *已弃用。自 JDK 1.1 版起,已替换为 removeAll()。 |
10 |
*int countItems() *已弃用。自 JDK 1.1 版起,已替换为 getItemCount()。 |
11 |
void delItem(int position) 已弃用。已替换为 remove(String) 和 remove(int)。 |
12 |
*void delItems(int start, int end) *已弃用。自 JDK 1.1 版起,未来不再供公开使用。预计此方法仅保留为包私有方法。 |
13 |
*void deselect(int index) *取消选择指定索引处的项目。 |
14 |
*AccessibleContext getAccessibleContext() *获取与此列表关联的 AccessibleContext。 |
15 |
*ActionListener[] getActionListeners() *返回在此列表上注册的所有动作侦听器的数组。 |
16 |
*String getItem(int index) *获取与指定索引关联的项。 |
17 |
*int getItemCount() *获取列表中的项数。 |
18 |
*ItemListener[] getItemListeners() *返回在此列表上注册的所有项侦听器的数组。 |
19 |
*String[] getItems() *获取列表中的项。 |
20 |
*Dimension getMinimumSize() *确定此滚动列表的最小尺寸。 |
21 |
*Dimension getMinimumSize(int rows) *获取具有指定行数的列表的最小尺寸。 |
22 |
*Dimension getPreferredSize() *获取此滚动列表的首选尺寸。 |
23 |
*Dimension getPreferredSize(int rows) *获取具有指定行数的列表的首选尺寸。 |
24 |
*int getRows() *获取此列表中的可见行数。 |
25 |
*int getSelectedIndex() *获取列表中所选项的索引, |
26 |
*int[] getSelectedIndexes() *获取列表中的所选索引。 |
27 |
*String getSelectedItem() *获取在此滚动列表中选择的项。 |
28 |
*String[] getSelectedItems() *获取此滚动列表中选择的项。 |
29 |
*Object[] getSelectedObjects() *以对象数组的形式获取在此滚动列表中选择的项。 |
30 |
*int getVisibleIndex() *获取通过方法 makeVisible 最后一次可见的项的索引。 |
31 |
*boolean isIndexSelected(int index) *确定此滚动列表中的指定项是否已选择。 |
32 |
*boolean isMultipleMode() *确定此列表是否允许多选。 |
33 |
*boolean isSelected(int index)*已弃用。自 JDK 1.1 版起,已替换为 isIndexSelected(int)。 |
34 |
*void makeVisible(int index)*使指定索引处的项目可见。 |
35 |
*Dimension minimumSize()*已弃用。自 JDK 1.1 版起,已替换为 getMinimumSize()。 |
36 |
*Dimension minimumSize(int rows)*已弃用。自 JDK 1.1 版起,已替换为 getMinimumSize(int)。 |
37 |
*protected String paramString()*返回表示此滚动列表状态的参数字符串。 |
38 |
*Dimension preferredSize()*已弃用。自 JDK 1.1 版起,已替换为 getPreferredSize()。 |
39 |
*Dimension preferredSize(int rows)*已弃用。自 JDK 1.1 版起,已替换为 getPreferredSize(int)。 |
40 |
*protected void processActionEvent(ActionEvent e)*通过将操作事件分派到任何已注册的 ActionListener 对象,处理在此组件上发生的事件。 |
41 |
*protected void processEvent(AWTEvent e)*处理此滚动列表上的事件。 |
42 |
*protected void processItemEvent(ItemEvent e)*通过将项目事件分派到任何已注册的 ItemListener 对象,处理在此列表上发生的项目事件。 |
43 |
*void remove(int position)*从此滚动列表中删除指定位置处的项目。 |
44 |
*void remove(String item)*从列表中删除项目第一次出现。 |
45 |
*void removeActionListener(ActionListener l)*移除指定的操作侦听器,使其不再从此列表接收操作事件。 |
46 |
*void removeAll()*从此列表中删除所有项目。 |
47 |
*void removeItemListener(ItemListener l)*移除指定的项目侦听器,使其不再从此列表接收项目事件。 |
48 |
*void removeNotify()*移除此列表的同伴。 |
49 |
*void replaceItem(String newValue, int index)*用新的字符串替换滚动列表中指定索引处的项目。 |
50 |
*void select(int index)*选中滚动列表中指定索引处的项目。 |
51 |
*void setMultipleMode(boolean b)*设置一个标志,该标志确定此列表是否允许多选。 |
52 |
*void setMultipleSelections(boolean b)*已弃用。从 JDK 版本 1.1 开始,已由 setMultipleMode(boolean) 取代。 |
List Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showListDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showListDemo(){
headerLabel.setText("Control in action: List");
final List fruitList = new List(4,false);
fruitList.add("Apple");
fruitList.add("Grapes");
fruitList.add("Mango");
fruitList.add("Peer");
final List vegetableList = new List(4,true);
vegetableList.add("Lady Finger");
vegetableList.add("Onion");
vegetableList.add("Potato");
vegetableList.add("Tomato");
Button showButton = new Button("Show");
showButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = "Fruits Selected: "
+ fruitList.getItem(fruitList.getSelectedIndex());
data += ", Vegetables selected: ";
for(String vegetable:vegetableList.getSelectedItems()){
data += vegetable + " ";
}
statusLabel.setText(data);
}
});
controlPanel.add(fruitList);
controlPanel.add(vegetableList);
controlPanel.add(showButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT TextField Class
Introduction
textField 组件允许用户编辑单行文本。当用户在文本字段中键入键时,事件会发送给 TextField。键事件可能是按键按下、松开或键入。键事件将传递给已注册的 KeyListener。如果在该文本字段上启用了 ActionEvent,还可能出现 ActionEvent,然后可能通过按下“返回”键来引发 ActionEvent。
Class constructors
S.N. |
Constructor & Description |
1 |
*TextField() *构造一个新的文本字段。 |
2 |
*TextField(int columns) *使用指定列数构造一个新的空文本字段。 |
3 |
*TextField(String text) *使用指定文本初始化构造一个新的文本字段。 |
4 |
*TextField(String text, int columns) *使用指定的要显示文本进行初始化,并且足够宽以容纳指定列数,构造一个新的文本字段。 |
Class methods
S.N. |
Method & Description |
1 |
*void addActionListener(ActionListener l) *添加指定操作侦听器以从该文本字段接收操作事件。 |
2 |
*void addNotify() *创建 TextField 的对等项。 |
3 |
*boolean echoCharIsSet() *指示该文本字段是否有用于回显的字符集。 |
4 |
*AccessibleContext getAccessibleContext() *获取与此 TextField 关联的 AccessibleContext。 |
5 |
*ActionListener[] getActionListeners() *返回在此文本字段中注册的所有操作侦听器的数组。 |
6 |
*int getColumns() *获取该文本字段中的列数。 |
7 |
*char getEchoChar() *获取用于回显的字符。 |
8 |
*<T extends EventListener> T[] getListeners(Class<T> listenerType) *返回当前在此 TextField 上注册为 FooListener 的所有对象的数组。 |
9 |
*Dimension getMinimumSize() *获取此文本字段的最小尺寸。 |
10 |
Dimension getMinimumSize(int columns) Gets the minumum dimensions for a text field with the specified number of columns. |
11 |
*Dimension getPreferredSize() *获取此文本字段的首选大小。 |
12 |
*Dimension getPreferredSize(int columns) *使用指定列数获取此文本字段的首选大小。 |
13 |
*Dimension minimumSize()*已弃用。自 JDK 1.1 版起,已替换为 getMinimumSize()。 |
14 |
*Dimension minimumSize(int columns) *已弃用。从 JDK 版本 1.1 开始,已被 getMinimumSize(int) 替换。 |
15 |
*protected String paramString() *返回一个字符串,表示此 TextField 的状态。 |
16 |
*Dimension preferredSize()*已弃用。自 JDK 1.1 版起,已替换为 getPreferredSize()。 |
17 |
*Dimension preferredSize(int columns) *已弃用。从 JDK 版本 1.1 开始,已被 getPreferredSize(int) 替换。 |
18 |
*protected void processActionEvent(ActionEvent e) *通过分派给所有已注册的 ActionListener 对象,处理在此文本字段上发生的事件。 |
19 |
*protected void processEvent(AWTEvent e) *处理此文本字段上的事件。 |
20 |
*void removeActionListener(ActionListener l) *删除指定的 action 侦听器,使其不再接收此文本字段中的 action 事件。 |
21 |
*void setColumns(int columns) *设置此文本字段中的列数。 |
22 |
*void setEchoChar(char c) *设置此文本字段的回显字符。 |
23 |
*void setEchoCharacter(char c) *已弃用。从 JDK 版本 1.1 开始,已被 setEchoChar(char) 替换。 |
24 |
*void setText(String t) *将此文本组件呈现的文本设置为指定的文本。 |
TextField Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showTextFieldDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showTextFieldDemo(){
headerLabel.setText("Control in action: TextField");
Label namelabel= new Label("User ID: ", Label.RIGHT);
Label passwordLabel = new Label("Password: ", Label.CENTER);
final TextField userText = new TextField(6);
final TextField passwordText = new TextField(6);
passwordText.setEchoChar('*');
Button loginButton = new Button("Login");
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = "Username: " + userText.getText();
data += ", Password: " + passwordText.getText();
statusLabel.setText(data);
}
});
controlPanel.add(namelabel);
controlPanel.add(userText);
controlPanel.add(passwordLabel);
controlPanel.add(passwordText);
controlPanel.add(loginButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT TextArea Class
Introduction
AWT 中的 TextArea 控件为我们提供了多行编辑器区域。用户可以根据需要在此处输入尽可能多的文本。当文本区域中的文本大于可视区域时,将自动显示滚动条,帮助我们将文本向上和向下以及向右和向左滚动。
Field
以下是 java.awt.TextArea 类的字段:
-
*static int SCROLLBARS_BOTH * — 创建并显示垂直和水平滚动条。
-
*static int SCROLLBARS_HORIZONTAL_ONLY * — 仅创建和显示水平滚动条。
-
*static int SCROLLBARS_NONE * — 不为文本区域创建或显示任何滚动条。
-
static int SCROLLBARS_VERTICAL_ONLY — 仅创建并显示垂直滚动条。
Class constructors
S.N. |
Constructor & Description |
1 |
*TextArea() *构造一个新文本区域,内容为空字符串。 |
2 |
*TextArea(int rows, int columns) *构造一个新文本区域,具有指定的行数和列数,内容为空字符串。 |
3 |
*TextArea(String text) *使用指定的文本构造新的文本区域。 |
4 |
*TextArea(String text, int rows, int columns) *使用指定的文本以及指定的行数和列数构造新的文本区域。 |
5 |
*TextArea(String text, int rows, int columns, int scrollbars) *使用指定的文本以及指定的行数、列数和滚动条可见性构造新的文本区域。 |
Class methods
S.N. |
Method & Description |
1 |
*void addNotify() *创建 TextArea 的伙伴。 |
2 |
*void append(String str) *将给定的文本追加到文本区域的当前文本。 |
3 |
*void appendText(String str) *已弃用。自 JDK 版本 1.1 起,已被 append(String) 取代。 |
4 |
*AccessibleContext getAccessibleContext() *返回与此 TextArea 关联的 AccessibleContext。 |
5 |
*int getColumns() *返回此文本区域中的列数。 |
6 |
*Dimension getMinimumSize() *确定此文本区域的最小尺寸。 |
7 |
*Dimension getMinimumSize(int rows, int columns) *确定具有指定行数和列数的文本区域的最小尺寸。 |
8 |
*Dimension getPreferredSize() *确定此文本区域的首选尺寸。 |
9 |
*Dimension getPreferredSize(int rows, int columns) *确定具有指定行数和列数的文本区域的首选尺寸。 |
10 |
*int getRows() *返回文本区域中的行数。 |
11 |
*int getScrollbarVisibility() *返回一个枚举值,指示文本区域使用的滚动条。 |
12 |
*void insert(String str, int pos) *在此文本区域中指定的位置插入指定的文本。 |
13 |
*void insertText(String str, int pos) *已弃用。自 JDK 版本 1.1 起,已被 insert(String, int) 取代。 |
14 |
*Dimension minimumSize()*已弃用。自 JDK 1.1 版起,已替换为 getMinimumSize()。 |
15 |
*Dimension minimumSize(int rows, int columns) *已弃用。自 JDK 版本 1.1 起,已被 getMinimumSize(int, int) 取代。 |
16 |
*protected String paramString() *返回表示此 TextArea 状态的字符串。 |
17 |
*Dimension preferredSize()*已弃用。自 JDK 1.1 版起,已替换为 getPreferredSize()。 |
18 |
*Dimension preferredSize(int rows, int columns) *已弃用。自 JDK 版本 1.1 起,已被 getPreferredSize(int, int) 取代。 |
19 |
*void replaceRange(String str, int start, int end) *用指定的替换文本替换开始和结束位置之间文本。 |
20 |
*void replaceText(String str, int start, int end) *已过时。自 JDK 版本 1.1 起,已被 replaceRange(String, int, int) 替代。 |
21 |
*void setColumns(int columns) *设置该文本区域的列数。 |
22 |
*void setRows(int rows) *设置该文本区域的行数。 |
TextArea Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showTextAreaDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showTextAreaDemo(){
headerLabel.setText("Control in action: TextArea");
Label commentlabel= new Label("Comments: ", Label.RIGHT);
final TextArea commentTextArea = new TextArea("This is a AWT tutorial "
+"to make GUI application in Java.",5,30);
Button showButton = new Button("Show");
showButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText( commentTextArea.getText());
}
});
controlPanel.add(commentlabel);
controlPanel.add(commentTextArea);
controlPanel.add(showButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Choice Class
Class declaration
以下是 java.awt.Choice 类的声明:
public class Choice
extends Component
implements ItemSelectable, Accessible
Class methods
S.N. |
Method & Description |
1 |
*void add(String item) *向此选项菜单添加一个项目。 |
2 |
*void addItem(String item) *自 Java 2 platform v1.1 起已过时。 |
3 |
*void addItemListener(ItemListener l) *添加指定项目侦听器以接收来自此选项菜单的项目事件。 |
4 |
*void addNotify() *创建该选项的对等。 |
5 |
*int countItems() *已弃用。自 JDK 1.1 版起,已替换为 getItemCount()。 |
6 |
*AccessibleContext getAccessibleContext() *获取与此选项关联的 AccessibleContext。 |
7 |
*String getItem(int index) *获取此选项菜单中指定索引处的字符串。 |
8 |
*int getItemCount() *返回此选项菜单中的项目数。 |
9 |
*ItemListener[] getItemListeners() *返回在此选项上注册的所有项目侦听器的数组。 |
10 |
*<T extends EventListener> T[] getListeners(Class<T> listenerType) *返回当前以此选项注册为 FooListeners 的所有对象的数组。 |
11 |
*int getSelectedIndex() *返回当前所选项目的索引。 |
12 |
*String getSelectedItem() *获取当前选项的字符串表示形式。 |
13 |
*Object[] getSelectedObjects() *返回包含当前所选项目的数组(长度为 1)。 |
14 |
*void insert(String item, int index) *将项插入到指定位置的此选项中。 |
15 |
protected String paramString() 返回表示此 Choice 菜单状态的字符串。 |
16 |
*protected void processEvent(AWTEvent e) *处理此选项上的事件。 |
17 |
*protected void processItemEvent(ItemEvent e) *通过分派给任何注册的 ItemListener 对象来处理在此 Choice 菜单上发生的项目事件。 |
18 |
*void remove(int position) *从指定位置的选项菜单中删除一个项目。 |
19 |
*void remove(String item) *从 Choice 菜单中删除项目的第一个出现项。 |
20 |
*void removeAll() *从选项菜单中删除所有项目。 |
21 |
*void removeItemListener(ItemListener l) *移除指定项目侦听器,使其不再接收来自此 Choice 菜单的项目事件。 |
22 |
*void select(int pos) *将此 Choice 菜单中的选中项目设置为指定位置的项目。 |
23 |
*void select(String str) *将此 Choice 菜单中的选中项目设置为名称等于指定字符串的项目。 |
Choice Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showChoiceDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showChoiceDemo(){
headerLabel.setText("Control in action: Choice");
final Choice fruitChoice = new Choice();
fruitChoice.add("Apple");
fruitChoice.add("Grapes");
fruitChoice.add("Mango");
fruitChoice.add("Peer");
Button showButton = new Button("Show");
showButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = "Fruit Selected: "
+ fruitChoice.getItem(fruitChoice.getSelectedIndex());
statusLabel.setText(data);
}
});
controlPanel.add(fruitChoice);
controlPanel.add(showButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Canvas Class
Class declaration
以下是 java.awt.Canvas 类的声明:
public class Canvas
extends Component
implements Accessible
Class constructors
S.N. |
Constructor & Description |
1 |
*Canvas() *构造一个新的 Canvas。 |
2 |
*Canvas(GraphicsConfiguration config) *构造一个新的 Canvas 并给定一个 GraphicsConfiguration 对象。 |
Class methods
S.N. |
Method & Description |
1 |
*void addNotify() *创建画布的同级。 |
2 |
*void createBufferStrategy(int numBuffers) *为此组件创建一个新的多缓冲策略。 |
3 |
*void createBufferStrategy(int numBuffers, BufferCapabilities caps) *为此组件创建一个具有所需缓冲区功能的新多缓冲策略。 |
4 |
*AccessibleContext getAccessibleContext() *获取与此 Canvas 关联的 AccessibleContext。 |
5 |
*BufferStrategy getBufferStrategy() *返回此组件使用的 BufferStrategy。 |
6 |
void paint(Graphics g) 绘制该画布。 |
7 |
void pdate(Graphics g) 更新该画布。 |
Canvas Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showCanvasDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showCanvasDemo(){
headerLabel.setText("Control in action: Canvas");
controlPanel.add(new MyCanvas());
mainFrame.setVisible(true);
}
class MyCanvas extends Canvas {
public MyCanvas () {
setBackground (Color.GRAY);
setSize(300, 300);
}
public void paint (Graphics g) {
Graphics2D g2;
g2 = (Graphics2D) g;
g2.drawString ("It is a custom canvas area", 70, 70);
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Image Class
Field
以下是 java.awt.Image 类的字段:
-
*受保护的浮点数 accelerationPriority * — 用于加速此图像的优先级。
-
*静态 int SCALE_AREA_AVERAGING * — 使用面积平均图像缩放算法。
-
*静态 int SCALE_DEFAULT * — 使用默认图像缩放算法。
-
*静态 int SCALE_FAST * — 选择一个图像缩放算法,该算法优先级高于缩放图像的平滑程度。
-
*静态 int SCALE_REPLICATE * — 使用 ReplicateScaleFilter 类中包含的图像缩放算法。
-
*静态 int SCALE_SMOOTH * — 选择一个图像缩放算法,该算法优先级高于缩放速度。
-
*静态对象 UndefinedProperty * — 每当获取特定图像中未定义的属性时,都应返回 UndefinedProperty 对象。
Class methods
S.N. |
Method & Description |
1 |
*void flush() *刷新此 Image 对象正在使用的所有可重建资源。 |
2 |
*浮点数 getAccelerationPriority() *返回加速优先级提示的当前值。 |
3 |
*ImageCapabilities getCapabilities(GraphicsConfiguration gc) *返回 ImageCapabilities 对象,可以按此 Image 在指定 GraphicsConfiguration 上的功能进行查询。 |
4 |
*抽象 Graphics getGraphics() *创建用于绘制到屏幕外图像的图形上下文。 |
5 |
*抽象 int getHeight(ImageObserver observer) *确定图像的高度。 |
6 |
*抽象对象 getProperty(String name, ImageObserver observer) *按名称获取此图像的属性。 |
7 |
*图像 getScaledInstance(int width, int height, int hints) *创建此图像的缩放版本。 |
8 |
*abstract ImageProducer getSource() *获取为图像生成像素的对象。 |
9 |
*abstract int getWidth(ImageObserver observer) *确定图像的宽度。 |
10 |
*void setAccelerationPriority(float priority) *为图像设置一条提示,指出加速的重要性。 |
Image Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showImageDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showImageDemo(){
headerLabel.setText("Control in action: Image");
controlPanel.add(new ImageComponent("resources/java.jpg"));
mainFrame.setVisible(true);
}
class ImageComponent extends Component {
BufferedImage img;
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
public ImageComponent(String path) {
try {
img = ImageIO.read(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(), img.getHeight());
}
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Scrollbar Class
Class declaration
以下是 java.awt.Scrollbar 类的声明:
public class Scrollbar
extends Component
implements Adjustable, Accessible
Field
以下是 java.awt.Image 类的字段:
-
*static int HORIZONTAL * --表示水平滚动条的常量。
-
*static int VERTICAL * --表示垂直滚动条的常量。
Class constructors
S.N. |
Constructor & Description |
1 |
*Scrollbar() *构造一个新的垂直滚动条。 |
2 |
*Scrollbar(int orientation) *使用指定方向构造一个新的滚动条。 |
3 |
*Scrollbar(int orientation, int value, int visible, int minimum, int maximum) *使用指定的方向、初始值、可见数量以及最小值和最大值,构造一个新的滚动条。 |
Class methods
S.N. |
Method & Description |
1 |
*void addAdjustmentListener(AdjustmentListener l) *添加指定调整侦听器,以从该滚动条接收 AdjustmentEvent 实例。 |
2 |
*void addNotify() *创建滚动条的对等组件。 |
3 |
*int getBlockIncrement() *获取该滚动条的块增量。 |
4 |
*int getLineIncrement() *已弃用。从 JDK 1.1 版起,由 getUnitIncrement() 代替。 |
5 |
*int getMaximum() *获取该滚动条的最大值。 |
6 |
*int getMinimum() *获取该滚动条的最小值。 |
7 |
int getOrientation() 返回该滚动条的方向。 |
8 |
*int getPageIncrement() *已弃用。从 JDK 1.1 版起,由 getBlockIncrement() 代替。 |
9 |
int getUnitIncrement() 获取该滚动条的单位增量。 |
10 |
*int getValue() *获取此滚动条的当前值。 |
11 |
boolean getValueIsAdjusting()如果值正在由于用户执行了某些操作而发生的改变,则返回 true。 |
12 |
*int getVisible() *已弃用。从 JDK 版本 1.1 起,由 getVisibleAmount() 替换。 |
13 |
*int getVisibleAmount() *获取此滚动条的可见量。 |
14 |
*protected String paramString() *返回一个表示此滚动条状态的字符串。 |
15 |
*protected void processAdjustmentEvent(AdjustmentEvent e) *通过将调整事件分派到注册的任何 AdjustmentListener 对象来处理在此滚动条上发生的调整事件。 |
16 |
*protected * |
1 |
*void processEvent(AWTEvent e) *处理此滚动条的事件。 |
17 |
*void removeAdjustmentListener(AdjustmentListener l) *移除指定的调整侦听器,以便它不再接收此滚动条的 AdjustmentEvent 实例。 |
18 |
*void setBlockIncrement(int v) *设置此滚动条的块增量。 |
19 |
*void setLineIncrement(int v) *已弃用。从 JDK 版本 1.1 起,由 setUnitIncrement(int) 替换。 |
20 |
*void setMaximum(int newMaximum) *设置此滚动条的最大值。 |
21 |
*void setMinimum(int newMinimum) *设置此滚动条的最小值。 |
22 |
*void setOrientation(int orientation) *设置此滚动条的方向。 |
23 |
*void setPageIncrement(int v) *已弃用。从 JDK 版本 1.1 起,由 setBlockIncrement() 替换。 |
24 |
*void setUnitIncrement(int v) *设置此滚动条的单位增量。 |
25 |
*void setValue(int newValue) *将此滚动条的值设置为指定的值。 |
26 |
*void setValueIsAdjusting(boolean b) *设置 valueIsAdjusting 属性。 |
27 |
*void setValues(int value, int visible, int minimum, int maximum) *设置此滚动条的四个属性值:value、visibleAmount、minimum 和 maximum。 |
28 |
*void setVisibleAmount(int newAmount) *设置此滚动条的可见量。 |
Scrollbar Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showScrollbarDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showScrollbarDemo(){
headerLabel.setText("Control in action: Scrollbar");
final Scrollbar horizontalScroller = new Scrollbar(Scrollbar.HORIZONTAL);
final Scrollbar verticalScroller = new Scrollbar();
verticalScroller.setOrientation(Scrollbar.VERTICAL);
horizontalScroller.setMaximum (100);
horizontalScroller.setMinimum (1);
verticalScroller.setMaximum (100);
verticalScroller.setMinimum (1);
horizontalScroller.addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
statusLabel.setText("Horozontal: "
+horizontalScroller.getValue()
+" ,Vertical: "
+ verticalScroller.getValue());
}
});
verticalScroller.addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
statusLabel.setText("Horozontal: "
+horizontalScroller.getValue()
+" ,Vertical: "+ verticalScroller.getValue());
}
});
controlPanel.add(horizontalScroller);
controlPanel.add(verticalScroller);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Dialog Class
Class constructors
S.N. |
Constructor & Description |
1 |
*Dialog(Dialog owner) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Dialog 和一个空标题。 |
2 |
*Dialog(Dialog owner, String title) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Dialog 和标题。 |
3 |
*Dialog(Dialog owner, String title, boolean modal) *构造一个最初不可见的 Dialog,具有指定的所有者 Dialog、标题和方式。 |
4 |
*Dialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc) *构造一个最初不可见的 Dialog,具有指定的所有者 Dialog、标题、方式和 GraphicsConfiguration。 |
5 |
*Dialog(Frame owner) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Frame 和一个空标题。 |
6 |
*Dialog(Frame owner, boolean modal) *构造一个最初不可见的 Dialog,具有指定的所有者 Frame 和方式和一个空标题。 |
7 |
*Dialog(Frame owner, String title) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Frame 和标题。 |
8 |
*Dialog(Frame owner, String title, boolean modal) *构造一个最初不可见的 Dialog,具有指定的所有者 Frame、标题和方式。 |
9 |
*Dialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc) *构造一个最初不可见的 Dialog,具有指定的所有者 Frame、标题、方式和 GraphicsConfiguration。 |
10 |
*Dialog(Window owner) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Window 和一个空标题。 |
11 |
*Dialog(Window owner, Dialog.ModalityType modalityType) *构造一个最初不可见的 Dialog,具有指定的所有者 Window 和方式以及一个空标题。 |
12 |
*Dialog(Window owner, String title) *构造一个最初不可见的无模态 Dialog,具有指定的所有者 Window 和标题。 |
13 |
*Dialog(Window owner, String title, Dialog.ModalityType modalityType) *构造一个最初不可见的 Dialog,具有指定的所有者 Window、标题和方式。 |
14 |
*Dialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc) *构造一个最初不可见的 Dialog,具有指定的所有者 Window、标题、方式和 GraphicsConfiguration |
Class methods
S.N. |
Method & Description |
1 |
*void addNotify() *通过将其连接到本机屏幕资源,使此 Dialog 可显示。 |
2 |
AccessibleContext getAccessibleContext() 获取与此 Dialog 关联的 AccessibleContext。 |
3 |
*Dialog.ModalityType getModalityType() *返回此对话框的模态类型。 |
4 |
*String getTitle() *获取对话框的标题。 |
5 |
void hide() 已弃用。在 JDK 版本 1.5 中,已替换为 setVisible(boolean)。 |
6 |
*boolean isModal() *指示对话框是否模态。 |
7 |
*boolean isResizable() *指示此对话框是否可由用户调整大小。 |
8 |
*boolean isUndecorated() *指示此对话框是否不含装饰。 |
9 |
*protected String paramString() *返回表示此对话框的状态的字符串。 |
10 |
*void setModal(boolean modal) *指定此对话框是否应为模态。 |
11 |
*void setModalityType(Dialog.ModalityType type) *为此对话框设置模态类型。 |
12 |
*void setResizable(boolean resizable) *设置此对话框是否可由用户调整大小。 |
13 |
*void setTitle(String title) *设置 Dialog 的标题。 |
14 |
*void setUndecorated(boolean undecorated) *禁用或启用此对话框的装饰。 |
15 |
*void setVisible(boolean b) *根据参数 b 的值显示或隐藏此 Dialog。 |
16 |
*void show() *已弃用。在 JDK 版本 1.5 中,已替换为 setVisible(boolean)。 |
17 |
*void toBack() *如果此窗口可见,则将此窗口发送到后面,并可能导致其失去焦点或激活,如果它是焦点的或活动窗口。 |
Dialog Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showDialogDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showDialogDemo(){
headerLabel.setText("Control in action: Dialog");
Button showAboutDialogButton = new Button("Show About Dialog");
showAboutDialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AboutDialog aboutDialog = new AboutDialog(mainFrame);
aboutDialog.setVisible(true);
}
});
controlPanel.add(showAboutDialogButton);
mainFrame.setVisible(true);
}
class AboutDialog extends Dialog {
public AboutDialog(Frame parent){
super(parent, true);
setBackground(Color.gray);
setLayout(new BorderLayout());
Panel panel = new Panel();
panel.add(new Button("Close"));
add("South", panel);
setSize(200,200);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
dispose();
}
});
}
public boolean action(Event evt, Object arg){
if(arg.equals("Close")){
dispose();
return true;
}
return false;
}
public void paint(Graphics g){
g.setColor(Color.white);
g.drawString("TutorialsPoint.Com", 25,70 );
g.drawString("Version 1.0", 60, 90);
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT FileDialog Class
Field
以下是 java.awt.Image 类的字段:
-
*static int LOAD * — 此常数值表示文件对话框窗口的目的是从中读取文件。
-
*static int SAVE * — 此常数值表示文件对话框窗口的目的是找到要写入的文件。
Class constructors
S.N. |
Constructor & Description |
1 |
*FileDialog(Dialog parent) *为加载 files 创建一个文件对话框。 |
2 |
FileDialog(Dialog parent, String title) 用指定的标题为加载 files 创建一个文件对话框窗口。 |
3 |
*FileDialog(Dialog parent, String title, int mode) *用指定的标题为加载或保存 files 创建一个文件对话框窗口。 |
4 |
FileDialog(Frame parent) 为加载 files 创建一个文件对话框。 |
5 |
*FileDialog(Frame parent, String title) *用指定的标题为加载 files 创建一个文件对话框窗口。 |
6 |
*FileDialog(Frame parent, String title, int mode) *用指定的标题为加载或保存 files 创建一个文件对话框窗口。 |
Class methods
S.N. |
Method & Description |
1 |
*void addNotify() *创建文件对话框的对等对象。 |
2 |
*String getDirectory() *获取此文件对话框的目录。 |
3 |
*String getFile() *获取此文件对话框所选的 file。 |
4 |
*FilenameFilter getFilenameFilter() *确定此文件对话框的文件名过滤器。 |
5 |
*int getMode() *指示此文件对话框框是用于从 file 中加载还是保存到 file 中。 |
6 |
*protected String paramString() *返回表示此 FileDialog 窗口状态的字符串。 |
7 |
*void setDirectory(String dir) *将此文件对话框窗口的目录设置为指定的目录。 |
8 |
*void setFile(String file) *将此文件对话框窗口所选的 file 设置为指定的文件。 |
9 |
*void setFilenameFilter(FilenameFilter filter) *将此文件对话框窗口的文件名过滤器设置为指定的过滤器。 |
10 |
*void setMode(int mode) *设置文件对话框的模式。 |
FileDialog Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showFileDialogDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showFileDialogDemo(){
headerLabel.setText("Control in action: FileDialog");
final FileDialog fileDialog = new FileDialog(mainFrame,"Select file");
Button showFileDialogButton = new Button("Open File");
showFileDialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
fileDialog.setVisible(true);
statusLabel.setText("File Selected :"
+ fileDialog.getDirectory() + fileDialog.getFile());
}
});
controlPanel.add(showFileDialogButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
Event Handling
What is an Event?
物体的状态变化称为事件,即事件描述源的状态变化。事件是由于用户与图形用户界面组件的交互而生成的。例如,单击按钮、移动鼠标、通过键盘输入字符、从列表中选择项、滚动页面是由导致事件发生的操作。
Types of Event
事件大致可以分为两类:
-
Foreground Events - 那些需要用户直接交互的事件。它们是由人员与图形用户界面中的图形组件交互产生的。例如,单击按钮、移动鼠标、通过键盘输入字符、从列表中选择项、滚动页面等。
-
Background Events - 需要用户交互的那些事件被称为后台事件。操作系统中断、硬件或软件故障、计时器过期、操作完成是后台事件的示例。
What is Event Handling?
事件处理是控制事件并决定在事件发生时应发生什么的机制。此机制包含一个名为事件处理程序的代码,该代码在事件发生时执行。Java 使用委托事件模型来处理事件。此模型定义了用于生成和处理事件的标准机制。让我们简要介绍一下此模型。
委托事件模型有以下主要参与者:
-
Source - 源是一个发生事件的对象。源负责将发生事件的信息提供给它的处理程序。Java 为我们提供源对象的类。
-
Listener - 它也称为事件处理程序。侦听器负责生成对事件的响应。从 Java 实现的角度来看,侦听器也是一个对象。侦听器一直等到收到事件。一旦收到事件,侦听器会处理事件,然后返回。
这种方法的好处是用户界面逻辑与生成事件的逻辑完全分离开来。用户界面元素能够将事件的处理委托给单独的代码块。在此模型中,侦听器需要在源对象中注册,以便侦听器能够接收事件通知。这是处理事件的有效方式,因为事件通知仅发送给想要接收它们的侦听器。
Steps involved in event handling
-
用户单击按钮并生成事件。
-
现在,相关事件类的对象会自动创建,有关源和事件的信息将填充在同一对象中。
-
事件对象将转发到已注册的侦听器类的方法。
-
该方法现在开始执行并返回。
Points to remember about listener
-
为了设计侦听器类,我们必须开发一些侦听器接口。这些监听器接口预测侦听器类必须实现的一些公共抽象回调方法。
-
如果您没有实现任何预定义的接口,那么您的类将无法充当源对象的侦听器类。
Callback Methods
这些是由 API 提供者提供的,由应用程序程序员定义并由应用程序开发人员调用的方法。在此,回调方法表示事件方法。为了响应事件,Java JRE 将触发回调方法。所有此类回调方法都在侦听器接口中提供。
如果组件希望某个侦听器侦听其事件,则该源必须将自身注册到侦听器。
Event Handling Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtControlDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtControlDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtControlDemo awtControlDemo = new AwtControlDemo();
awtControlDemo.showEventDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showEventDemo(){
headerLabel.setText("Control in action: Button");
Button okButton = new Button("OK");
Button submitButton = new Button("Submit");
Button cancelButton = new Button("Cancel");
okButton.setActionCommand("OK");
submitButton.setActionCommand("Submit");
cancelButton.setActionCommand("Cancel");
okButton.addActionListener(new ButtonClickListener());
submitButton.addActionListener(new ButtonClickListener());
cancelButton.addActionListener(new ButtonClickListener());
controlPanel.add(okButton);
controlPanel.add(submitButton);
controlPanel.add(cancelButton);
mainFrame.setVisible(true);
}
private class ButtonClickListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if( command.equals( "OK" )) {
statusLabel.setText("Ok Button clicked.");
}
else if( command.equals( "Submit" ) ) {
statusLabel.setText("Submit Button clicked.");
}
else {
statusLabel.setText("Cancel Button clicked.");
}
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtControlDemo
验证以下输出
AWT Event Classes
事件类表示事件。Java 为我们提供了各种事件类,但我们将讨论那些使用频率较高的事件类。
EventObject class
这是派生所有事件状态对象的所有事件类的根类。所有事件都是使用指向对象的引用构建的,即 source ,该对象在逻辑上被视为最初发生相关事件的对象。此类在 java.util 包中定义。
Class declaration
以下是 java.util.EventObject 类的声明:
public class EventObject
extends Object
implements Serializable
AWT AWTEvent Class
它是所有 AWT 事件的根事件类。此类及其子类取代原始的 java.awt.Event 类。此类在 java.awt 包中定义。此类有一个名为getID()的方法,可用于确定事件的类型。
Field
以下是 java.awt.AWTEvent 类的字段:
-
static int ACTION_FIRST ——用于操作事件的 id 范围中的第一个数字。
-
*static long ACTION_EVENT_MASK *——用于选择操作事件的事件掩码。
-
*static long ADJUSTMENT_EVENT_MASK *——用于选择调整事件的事件掩码。
-
*static long COMPONENT_EVENT_MASK *——用于选择组件事件的事件掩码。
-
*protected boolean consumed *——控制事件在源处理后是否发送回对等方——false 表示发送给对等方;true 表示不发送。
-
*static long CONTAINER_EVENT_MASK *——用于选择容器事件的事件掩码。
-
*static long FOCUS_EVENT_MASK *——用于选择焦点事件的事件掩码。
-
*static long HIERARCHY_BOUNDS_EVENT_MASK *——用于选择层次结构边界事件的事件掩码。
-
*static long HIERARCHY_EVENT_MASK *——用于选择层次结构事件的事件掩码。
-
*protected int id *——事件的 id。
-
*static long INPUT_METHOD_EVENT_MASK *——用于选择输入法事件的事件掩码。
-
*static long INVOCATION_EVENT_MASK *——用于选择调用事件的事件掩码。
-
*static long ITEM_EVENT_MASK * — 用于选择项目事件的事件掩码。
-
*static long KEY_EVENT_MASK * — 用于选择按键事件的事件掩码。
-
*static long MOUSE_EVENT_MASK * — 用于选择鼠标事件的事件掩码。
-
*static long MOUSE_MOTION_EVENT_MASK * — 用于选择鼠标移动事件的事件掩码。
-
*static long MOUSE_WHEEL_EVENT_MASK * — 用于选择鼠标滚轮事件的事件掩码。
-
*static long PAINT_EVENT_MASK * — 用于选择绘制事件的事件掩码。
-
*static int RESERVED_ID_MAX * — 保留的 AWT 事件 ID 的最大值。
-
*static long TEXT_EVENT_MASK * — 用于选择文本事件的事件掩码。
-
*static long WINDOW_EVENT_MASK * — 用于选择窗口事件的事件掩码。
-
*static long WINDOW_FOCUS_EVENT_MASK * — 用于选择窗口焦点事件的事件掩码。
-
*static long WINDOW_STATE_EVENT_MASK * — 用于选择窗口状态事件的事件掩码。
Class constructors
S.N. |
Constructor & Description |
1 |
*AWTEvent(Event event) *根据 1.0 样式事件的参数构建 AWTEvent 对象。 |
2 |
*AWTEvent(java.lang.Object source, int id) *使用指定资源对象和类型构建 AWTEvent 对象。 |
Class methods
S.N. |
Method & Description |
1 |
protected void consume() 如果此事件可以被消耗,则消耗此事件。 |
2 |
int getID() 返回事件类型。 |
3 |
protected boolean isConsumed() 返回此事件是否已被消耗。 |
4 |
java.lang.String paramString() 返回一个表示此 Event 状态的字符串。 |
5 |
void setSource(java.lang.Object newSource) 将事件重新定位到新资源。 |
6 |
java.lang.String toString() 返回表示此对象的字符串。 |
AWT ActionEvent Class
该类在 java.awt.event 包中定义。当单击按钮或双击列表项时,将生成 ActionEvent。
Field
以下是 java.awt.event.ActionEvent 类的字段:
-
static int ACTION_FIRST ——用于操作事件的 id 范围中的第一个数字。
-
*static int ACTION_LAST * — 用于操作事件的 id 范围中的最后一个数字。
-
*static int ACTION_PERFORMED * — 此事件 id 表示已发生有意义的操作。
-
*static int ALT_MASK * — Alt 修饰键。
-
*static int CTRL_MASK * — Ctrl 修饰键。
-
*static int META_MASK * — Meta 修饰键。
-
*static int SHIFT_MASK * — Shift 修饰键。
Class constructors
S.N. |
Constructor & Description |
1 |
ActionEvent(java.lang.Object source, int id, java.lang.String command) 构件一个 ActionEvent 对象。 |
2 |
ActionEvent(java.lang.Object source, int id, java.lang.String command, int modifiers) 使用修饰键构件一个 ActionEvent 对象。 |
3 |
ActionEvent(java.lang.Object source, int id, java.lang.String command, long when, int modifiers) 使用指定的修饰键和时间戳构件一个 ActionEvent 对象。 |
AWT InputEvent Class
InputEvent 类是所有组件级输入事件的根事件类。在输入事件的源正常处理它们之前,它们将被传递给侦听器。这允许侦听器和组件子类“使用”事件,以便源不会以其默认方式处理它们。例如,使用按钮组件上的 mousePressed 事件将阻止按钮被激活。
Class declaration
以下是 java.awt.event.InputEvent 类的声明:
public abstract class InputEvent
extends ComponentEvent
Field
以下是 java.awt.event.InputEvent 类的字段:
-
*static int ALT_DOWN_MASK * — Alt 键扩展修饰符常数。
-
*static int ALT_GRAPH_DOWN_MASK * — AltGraph 键扩展修饰符常数。
-
*static int ALT_GRAPH_MASK * — AltGraph 键修饰符常数。
-
*static int ALT_MASK * — Alt 键修饰符常数。
-
*static int BUTTON1_DOWN_MASK * — 鼠标按钮 1 扩展修饰符常数。
-
*static int BUTTON1_MASK * — 鼠标按钮 1 修饰符常数。
-
*static int BUTTON2_DOWN_MASK * — 鼠标按钮 2 扩展修饰符常数。
-
*static int BUTTON2_MASK * — 鼠标按钮 2 修饰符常数。
-
*static int BUTTON3_DOWN_MASK * — 鼠标按钮 3 扩展修饰符常数。
-
*static int BUTTON3_MASK * --鼠标按钮 3 修饰符常数。
-
*static int CTRL_DOWN_MASK * — Control 键扩展修饰符常数。
-
*static int CTRL_MASK * — Control 键修饰符常数。
-
*static int META_DOWN_MASK * — Meta 键扩展修饰符常数。
-
*static int META_MASK * — Meta 键修饰符常数。
-
*static int SHIFT_DOWN_MASK * — Shift 键扩展修饰符常数。
-
*static int SHIFT_MASK * — Shift 键修饰符常数。
Class methods
S.N. |
Method & Description |
1 |
*void consume() *使用此事件,从而不会由最初生成该事件的源以默认的方式处理该事件。 |
2 |
*int getModifiers() *返回此事件的修饰符掩码。 |
3 |
*int getModifiersEx() *返回此事件的扩展修饰符掩码。 |
4 |
*static String getModifiersExText(int modifiers) *返回描述键盘扩展修饰键和鼠标按钮的字符串,如“Shift”、“Button1”或“Ctrl+Shift”。 |
5 |
long getWhen() 返回此事件发生的时间戳。 |
6 |
*boolean isAltDown() *返回此事件中 Alt 修饰键是否按下。 |
7 |
boolean isAltGraphDown() 返回此事件中 AltGraph 修饰键是否按下。 |
8 |
boolean isConsumed() 返回此事件中是否已使用此事件。 |
9 |
*boolean isControlDown() *返回此事件中 Control 修饰键是否按下。 |
10 |
boolean isMetaDown() 返回此事件中 Meta 修饰键是否按下。 |
11 |
*boolean isShiftDown() *返回此事件中 Shift 修饰键是否按下。 |
AWT KeyEvent Class
输入字符时会生成 Key 事件。按键事件有三种类型,它们由整数常量表示。这些按键事件如下:
-
KEY_PRESSED
-
KEY_RELASED
-
KEY_TYPED
Field
以下是 java.awt.InputEvent 类的字段:
-
*static char CHAR_UNDEFINED * --不映射到有效 Unicode 字符的 KEY_PRESSED 和 KEY_RELEASED 事件将其用于 keyChar 值。
-
*static int KEY_FIRST * --用于按键事件的 ID 范围内的第一个数字。
-
*static int KEY_LAST * --用于按键事件的 ID 范围内的最后一个数字。
-
*static int KEY_LOCATION_LEFT * --一个常量,表示按下的或释放的键位于左侧键位置(此键有多个可能位置)。
-
static int KEY_LOCATION_NUMPAD --一个常量,表示按键事件起源于数字小键盘或对应于数字小键盘的虚拟键。
-
*static int KEY_LOCATION_RIGHT * --一个常量,表示按下的或释放的键位于右侧键位置(此键有多个可能位置)。
-
*static int KEY_LOCATION_STANDARD * --一个常量,表示按下的或释放的键并未区分键的左侧或右侧版本,也没有起源于数字小键盘(或未起源于对应于数字小键盘的虚拟键)。
-
static int KEY_LOCATION_UNKNOWN --一个常量,表示 keyLocation 不确定或不相关。
-
static int KEY_PRESSED --“按键”事件。
-
static int KEY\_RELEASED --“键释放”事件。
-
static int KEY\_TYPED --“按鍵”事件。
-
*static int VK_1 *
-
*static int VK_2 *
-
*static int VK_3 *
-
*static int VK_4 *
-
*static int VK_5 *
-
*static int VK_6 *
-
*static int VK_7 *
-
*static int VK_8 *
-
*static int VK_9 *
-
*static int VK\_A* --VK\_A 至 VK\_Z 与 ASCII 码 'A' 至 'Z' (0x41 - 0x5A) 相同
-
*static int VK\_ACCEPT * --接受或提交功能键常量。
-
*static int VK_ADD *
-
*static int VK_AGAIN *
-
*static int VK\_ALL\_CANDIDATES * --所有候选功能键常量。
-
*static int VK\_ALPHANUMERIC * --字母数字键常量。
-
*static int VK_ALT *
-
*static int VK\_ALT\_GRAPH * --AltGraph 功能键常量。
-
*static int VK_AMPERSAND *
-
*static int VK_ASTERISK *
-
*static int VK\_AT * --“@”键常量。
-
*static int VK_B *
-
*static int VK_BACK_QUOTE *
-
*static int VK\_BACK\_SLASH * --反斜杠键常量,“\”
-
*static int VK_BACK_SPACE *
-
*static int VK\_BEGIN * --开始键常量。
-
*static int VK_BRACELEFT *
-
*static int VK_BRACERIGHT *
-
*static int VK_C *
-
*static int VK_CANCEL *
-
*static int VK_CAPS_LOCK *
-
*static int VK\_CIRCUMFLEX * --“^”键常量。
-
*static int VK_CLEAR *
-
*static int VK\_CLOSE\_BRACKET * --右方圆括号键常量,“]”
-
*static int VK\_CODE\_INPUT * --代码输入功能键常量。
-
*static int VK\_COLON * --冒号键常量。
-
*static int VK\_COMMA * --逗号键常量,","
-
*static int VK\_COMPOSE * --组合功能键常量。
-
*static int VK\_CONTEXT\_MENU * --Microsoft Windows Context Menu 键常量。
-
*static int VK_CONTROL *
-
static int VK\_CONVERT — 转换功能键常量。
-
*static int VK_COPY *
-
*static int VK_CUT *
-
*static int VK_D *
-
*static int VK_DEAD_ABOVEDOT *
-
*static int VK_DEAD_ABOVERING *
-
*static int VK_DEAD_ACUTE *
-
*static int VK_DEAD_BREVE *
-
*static int VK_DEAD_CARON *
-
*static int VK_DEAD_CEDILLA *
-
*static int VK_DEAD_CIRCUMFLEX *
-
*static int VK_DEAD_DIAERESIS *
-
*static int VK_DEAD_DOUBLEACUTE *
-
*static int VK_DEAD_GRAVE *
-
*static int VK_DEAD_IOTA *
-
*static int VK_DEAD_MACRON *
-
*static int VK_DEAD_OGONEK *
-
static int VK_DEAD_SEMIVOICED_SOUND
-
*static int VK_DEAD_TILDE *
-
*static int VK_DEAD_VOICED_SOUND *
-
*static int VK_DECIMAL *
-
*static int VK_DELETE *
-
*static int VK_DIVIDE *
-
*static int VK\_DOLLAR * --“$”键常量。
-
*static int VK_DOWN * — 非小键盘下箭头键的常量。
-
*static int VK_E *
-
*static int VK_END *
-
*static int VK_ENTER *
-
*static int VK_EQUALS * --等于号键“=”的常量
-
*static int VK_ESCAPE *
-
*static int VK_EURO_SIGN * --欧元货币符号键的常量。
-
*static int VK_EXCLAMATION_MARK * --“!”键的常量。
-
*static int VK_F *
-
*static int VK_F1 * --F1功能键的常量。
-
*static int VK_F10 * --F10功能键的常量。
-
*static int VK_F11 * --F11功能键的常量。
-
*static int VK_F12 * --F12功能键的常量。
-
*static int VK_F13 * --F13功能键的常量。
-
*static int VK_F14 * --F14功能键的常量。
-
*static int VK_F15 * --F15功能键的常量。
-
*static int VK_F16 * --F16功能键的常量。
-
*static int VK_F17 * --F17功能键的常量。
-
*static int VK_F18 * --F18功能键的常量。
-
*static int VK_F19 * --F19功能键的常量。
-
*static int VK_F2 * --F2功能键的常量。
-
*static int VK_F20 * --F20功能键的常量。
-
*static int VK_F21 * — F21功能键的常量。
-
*static int VK_F22 * --F22功能键的常量。
-
*静态 int VK_F23 * --F23 功能键的常量。
-
*静态 int VK_F24 * --F24 功能键的常量。
-
*静态 int VK_F3 * --F3 功能键的常量。
-
*静态 int VK_F4 * --F4 功能键的常量。
-
*静态 int VK_F5 * — F5 功能键的常量。
-
*静态 int VK_F6 * --F6 功能键的常量。
-
*静态 int VK_F7 * --F7 功能键的常量。
-
*静态 int VK_F8 * --F8 功能键的常量。
-
*静态 int VK_F9 * --F9 功能键的常量。
-
*static int VK_FINAL *
-
*static int VK_FIND *
-
*静态 int VK_FULL_WIDTH * --全角字符功能键的常量。
-
*static int VK_G *
-
*static int VK_GREATER *
-
*static int VK_H *
-
*静态 int VK_HALF_WIDTH * --半角字符功能键的常量。
-
*static int VK_HELP *
-
*静态 int VK_HIRAGANA * --平假名功能键的常量。
-
*static int VK_HOME *
-
*static int VK_I *
-
*静态 int VK_INPUT_METHOD_ON_OFF * — 输入法开/关键的常量。
-
*static int VK_INSERT *
-
*静态 int VK_INVERTED_EXCLAMATION_MARK * --倒感叹号键的常量。
-
*static int VK_J *
-
*静态 int VK_JAPANESE_HIRAGANA * --日语平假名功能键的常量。
-
*静态 int VK_JAPANESE_KATAKANA * --日语片假名功能键的常量。
-
*静态 int VK_JAPANESE_ROMAN * --日语拉丁字母功能键的常量。
-
*static int VK_K *
-
*static int VK_KANA *
-
*静态 int VK_KANA_LOCK * — 锁定平假名功能键的常量。
-
*static int VK_KANJI *
-
*静态 int VK_KATAKANA * --片假名功能键的常量。
-
*static int VK_KP_DOWN * — 数字键盘向下箭头键的常量。
-
*static int VK_KP_LEFT * --数字键盘向左箭头键的常量。
-
*static int VK_KP_RIGHT * --数字键盘向右箭头键的常量。
-
*static int VK_KP_UP * --数字键盘向上箭头键的常量。
-
*static int VK_L *
-
*static int VK_LEFT * --非小键盘区的向左箭头键的常量。
-
*static int VK_LEFT_PARENTHESIS * --"(" 键的常量。
-
*static int VK_LESS *
-
*static int VK_M *
-
*static int VK_META *
-
*static int VK_MINUS * — 减号键 "-" 的常量。
-
*static int VK_MODECHANGE *
-
*static int VK_MULTIPLY *
-
*static int VK_N *
-
*static int VK_NONCONVERT * --不转换功能键的常量。
-
*static int VK_NUM_LOCK *
-
*static int VK_NUMBER_SIGN * --"#" 键的常量。
-
*static int VK_NUMPAD0 *
-
*static int VK_NUMPAD1 *
-
*static int VK_NUMPAD2 *
-
*static int VK_NUMPAD3 *
-
*static int VK_NUMPAD4 *
-
*static int VK_NUMPAD5 *
-
*static int VK_NUMPAD6 *
-
*static int VK_NUMPAD7 *
-
*static int VK_NUMPAD8 *
-
*static int VK_NUMPAD9 *
-
*static int VK_O *
-
*static int VK_OPEN_BRACKET * --左方括号键 "[" 的常量。
-
*static int VK_P *
-
static int VK_PAGE_DOWN
-
*static int VK_PAGE_UP *
-
*static int VK_PASTE *
-
*static int VK_PAUSE *
-
*static int VK_PERIOD * --句点键 "." 的常量。
-
*static int VK_PLUS * — 加号键 "+" 的常量。
-
*static int VK_PREVIOUS_CANDIDATE * — 前一候选词功能键的常量。
-
*static int VK_PRINTSCREEN *
-
*static int VK_PROPS *
-
*static int VK_Q *
-
*static int VK_QUOTE *
-
static int VK_QUOTEDBL
-
*static int VK_R *
-
*static int VK_RIGHT * — 非小键盘区的向右箭头键的常量。
-
*static int VK_RIGHT_PARENTHESIS * --")" 键的常量。
-
*static int VK_ROMAN_CHARACTERS * --罗马字符功能键的常量。
-
*static int VK_S *
-
*static int VK_SCROLL_LOCK *
-
*static int VK_SEMICOLON * — 分号键 ";" 的常量。
-
*static int VK_SEPARATER * --此常量已过时,仅作向后兼容而保留。
-
*static int VK_SEPARATOR * --小键盘分隔符键的常量。
-
*static int VK_SHIFT *
-
*static int VK_SLASH * — 正斜杠键的常量,"/"
-
*static int VK_SPACE *
-
*static int VK_STOP *
-
static int VK_SUBTRACT
-
*static int VK_T *
-
*static int VK_TAB *
-
*static int VK_U *
-
*static int VK_UNDEFINED * — 此值用于指示 keyCode 不明。
-
*static int VK_UNDERSCORE * --下划线键的常量。
-
static int VK_UNDO
-
*static int VK_UP * --非数字键盘向上箭头键的常量。
-
*static int VK_V *
-
*static int VK_W *
-
*static int VK_WINDOWS * --Microsoft Windows “Windows” 键的常量。
-
*static int VK_X *
-
*static int VK_Y *
-
*static int VK_Z *
Class constructors
S.N. |
Constructor & Description |
1 |
*KeyEvent(Component source, int id, long when, int modifiers, int keyCode) *已弃用。自 JDK1.1 起 |
2 |
*KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar) *构造 KeyEvent 对象。 |
3 |
KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation) |
Class methods
S.N. |
Method & Description |
1 |
*char getKeyChar() *返回与该事件中的键关联的字符。 |
2 |
*int getKeyCode() *返回与该事件中的键关联的整数 keyCode。 |
3 |
*int getKeyLocation() *返回触发该按键事件的键的方位。 |
4 |
*static String getKeyModifiersText(int modifiers) *返回描述修饰符键的字符串,例如“Shift”或“Ctrl+Shift”。 |
5 |
*static String getKeyText(int keyCode) *返回描述 keyCode 的字符串,例如“HOME”、“F1”或“A”。 |
6 |
*boolean isActionKey() *返回该事件中的键是否是“动作”键。 |
7 |
*String paramString() *返回标识该事件的参数字符串。 |
8 |
*void setKeyChar(char keyChar) *设置 keyChar 值以指示逻辑字符。 |
9 |
*void setKeyCode(int keyCode) *设置 keyCode 值以指示物理键。 |
10 |
*void setModifiers(int modifiers) *已弃用。自 JDK1.1.4 起 |
AWT MouseEvent Class
该事件指示组件中发生了鼠标动作。此低级事件是由组件对象针对鼠标事件和鼠标移动事件生成的。
-
鼠标按钮被按下
-
鼠标按钮被释放
-
鼠标按钮被点击(按下且释放)
-
鼠标光标进入组件几何的非模糊区域
-
鼠标光标退出组件几何的非模糊区域
-
a mouse is moved
-
the mouse is dragged
Field
以下是 java.awt.event.MouseEvent 类的字段:
-
*static int BUTTON1 * - 表示鼠标按钮#1;getButton()使用
-
*static int BUTTON2 * - 表示鼠标按钮#2;getButton()使用
-
*static int BUTTON3 * - 表示鼠标按钮#3;getButton()使用
-
*static int MOUSE_CLICKED * - “鼠标点击”事件
-
*static int MOUSE_DRAGGED * -“鼠标拖动”事件
-
*static int MOUSE_ENTERED * - “鼠标进入”事件
-
*static int MOUSE_EXITED * - “鼠标退出”事件
-
*static int MOUSE_FIRST * - 用于鼠标事件id范围内的第一个数字
-
*static int MOUSE_LAST * - 用于鼠标事件id范围内的最后一个数字
-
*static int MOUSE_MOVED * - “鼠标移动”事件
-
*static int MOUSE_PRESSED * - “鼠标按下”事件
-
*static int MOUSE_RELEASED * - “鼠标释放”事件
-
*static int MOUSE_WHEEL * --“鼠标滚轮”事件
-
*static int NOBUTTON * --表示没有鼠标按钮;getButton() 使用
-
*static int VK_WINDOWS * --Microsoft Windows “Windows” 键的常量。
Class constructors
S.N. |
Constructor & Description |
1 |
*MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger) *构造一个 MouseEvent 对象,其中包含指定的源组件、类型、修饰符、坐标和单击次数。 |
2 |
*MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button) *构造一个 MouseEvent 对象,其中包含指定的源组件、类型、修饰符、坐标和单击次数。 |
3 |
*MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button) *构造一个 MouseEvent 对象,其中包含指定的源组件、类型、修饰符、坐标、绝对坐标和单击次数。 |
Class methods
S.N. |
Method & Description |
1 |
*int getButton() *返回已更改状态的鼠标按钮(如果已更改)。 |
2 |
*int getClickCount() *返回与此事件关联的鼠标单击次数。 |
3 |
*Point getLocationOnScreen() *返回事件的绝对 x,y 位置。 |
4 |
*static String getMouseModifiersText(int modifiers) *返回一个字符串,描述事件期间按下的修饰键和鼠标按钮,例如 “Shift” 或 “Ctrl+Shift”。 |
5 |
*Point getPoint() *返回相对于源组件的事件的 x,y 位置。 |
6 |
*int getX() *返回相对于源组件的事件的水平 x 位置。 |
7 |
*int getXOnScreen() *返回事件的绝对水平 x 位置。 |
8 |
*int getY() *返回相对于源组件的事件的垂直 y 位置。 |
9 |
*int getYOnScreen() *返回事件的绝对垂直 y 位置。 |
10 |
boolean isPopupTrigger() Returns whether or not this mouse event is the popup menu trigger event for the platform. |
11 |
*String paramString() *返回标识该事件的参数字符串。 |
12 |
*void translatePoint(int x, int y) *通过添加指定 x(水平)和 y(垂直)偏移量将事件的坐标转换到一个新位置。 |
AWT TextEvent Class
这个类的对象表示文本事件。TextEvent 在文本字段或文本区域输入字符时生成。TextEvent 实例不包括在生成事件的文本组件中当前存在的字符,而是为我们提供了检索该信息的其它方法。
Field
以下是 java.awt.event.TextEvent 类的字段:
-
*static int TEXT_FIRST * --用于文本事件 ID 范围的第一个数字。
-
*static int TEXT_LAST * --用于文本事件 ID 范围的最后一个数字。
-
*static int TEXT_VALUE_CHANGED * --此事件 ID 表示对象的文本已更改。
AWT WindowEvent Class
此类的对象表示窗口状态的变化。当窗口打开、关闭、激活、停用、最小化或取消最小化,或者当焦点转移到窗口内或移出窗口外时,此低级事件由窗口对象生成。
Class declaration
以下是对 java.awt.event.WindowEvent 类的声明:
public class WindowEvent
extends ComponentEvent
Field
以下是对 java.awt.event.WindowEvent 类域的说明:
-
*static int WINDOW_ACTIVATED * --用于窗口激活事件类型的常量。
-
*static int WINDOW_CLOSED * — 窗口关闭事件。
-
*static int WINDOW_CLOSING * — “窗口正在关闭”事件。
-
*static int WINDOW_DEACTIVATED * — 用于窗口停用事件类型的常量。
-
*static int WINDOW_DEICONIFIED * — 用于窗口取消最小化事件类型的常量。
-
*static int WINDOW_FIRST * — 用于窗口事件 ID 范围的第一个数字。
-
*static int WINDOW_GAINED_FOCUS * — 用于窗口获得焦点事件类型的常量。
-
*static int WINDOW_ICONIFIED * — 窗口最小化事件。
-
*static int WINDOW_LAST * — 用于窗口事件 ID 范围的最后一个数字。
-
*static int WINDOW_LOST_FOCUS * — 用于窗口失去焦点事件类型的常量。
-
*static int WINDOW_OPENED * — 窗口打开事件。
-
static int WINDOW_STATE_CHANGED — 窗口状态已更改事件类型。
Class constructors
S.N. |
Constructor & Description |
1 |
*WindowEvent(Window source, int id)*构造 WindowEvent 对象。 |
2 |
*WindowEvent(Window source, int id, int oldState, int newState)*使用指定的前一个和新窗口状态构造 WindowEvent 对象。 |
3 |
*WindowEvent(Window source, int id, Window opposite)*构造具有指定相反 Window 的 WindowEvent 对象。 |
4 |
*WindowEvent(Window source, int id, Window opposite, int oldState, int newState)*构造 WindowEvent 对象。 |
AWT AdjustmentEvent Class
Class declaration
以下是 java.awt.event.AdjustmentEvent 类的声明:
public class AdjustmentEvent
extends AWTEvent
Field
以下是 java.awt.Component 类的字段:
-
static int ADJUSTMENT_FIRST — 标记调整事件 ID 范围的第一个整数 ID。
-
static int ADJUSTMENT_LAST — 标记调整事件 ID 范围的最后一个整数 ID。
-
static int ADJUSTMENT_VALUE_CHANGED — 调整值已更改事件。
-
static int BLOCK_DECREMENT — 块减少调整类型。
-
static int BLOCK_INCREMENT — 块增加调整类型。
-
static int TRACK — 绝对跟踪调整类型。
-
static int UNIT_DECREMENT — 单位减少调整类型。
-
static int UNIT_INCREMENT — 单位增加调整类型。
Class constructors
S.N. |
Constructor & Description |
1 |
*AdjustmentEvent(可调整原件、int id、int 类型、int 值) *用指定的可调整原件、事件类型、调整类型和值构造 AdjustmentEvent 对象。 |
2 |
*AdjustmentEvent(可调整原件、int id、int 类型、int 值、布尔值 isAdjusting) *用指定的可调整原件、事件类型、调整类型和值构造 AdjustmentEvent 对象。 |
AWT ComponentEvent Class
Class declaration
以下是 java.awt.event.ComponentEvent 类的声明:
public class ComponentEvent
extends AWTEvent
Field
以下是 java.awt.Component 类的字段:
-
*static int COMPONENT_FIRST * — 用于组件事件的 id 范围中的第一个数字。
-
*static int COMPONENT_HIDDEN * --此事件表示组件已呈现为不可见。
-
*static int COMPONENT_LAST * — 用于组件事件的 id 范围中的最后一个数字。
-
*static int COMPONENT_MOVED * — 此事件表示组件的位置已更改。
-
*static int COMPONENT_RESIZED * — 此事件表示组件的大小已更改。
-
*static int COMPONENT_SHOWN * — 此事件表示组件已变为可见。
Class constructors
S.N. |
Constructor & Description |
1 |
*ComponentEvent(组件原件、int id) *构造 ComponentEvent 对象。 |
AWT ContainerEvent Class
Class declaration
以下为 java.awt.event.ContainerEvent 类声明:
public class ContainerEvent
extends ComponentEvent
Field
以下是 java.awt.Component 类的字段:
-
*static int COMPONENT_ADDED * — 此事件指示已向容器添加某个组件。
-
*static int COMPONENT_REMOVED * — 此事件指示已从容器中删除某个组件。
-
*static int CONTAINER_FIRST * — 用于容器事件 ID 范围中的第一个数字。
-
*static int CONTAINER_LAST * — 用于容器事件 ID 范围中的最后一个数字。
Class constructors
S.N. |
Constructor & Description |
1 |
*ContainerEvent(Component source, int id, Component child) *构造一个 ContainerEvent 对象。 |
AWT MouseMotionEvent Class
AWT PaintEvent Class
Class declaration
以下为 java.awt.event.PaintEvent 类的声明:
public class PaintEvent
extends ComponentEvent
Field
以下是 java.awt.Component 类的字段:
-
*static int PAINT * — 绘制事件类型。
-
*static int PAINT_FIRST * — 标记用于绘制事件 ID 范围的第一个整数 ID。
-
*static int PAINT_LAST * — 标记用于绘制事件 ID 范围的最后一个整数 ID。
-
*static int UPDATE * — 更新事件类型。
Class constructors
S.N. |
Constructor & Description |
1 |
PaintEvent(Component source, int id, Rectangle updateRect) 使用指定的源组件和类型构造一个 PaintEvent 对象。 |
AWT Event Listeners
事件侦听器表示负责处理事件的接口。Java 为我们提供了各种事件侦听器类,但我们将讨论那些最常使用的类。每个事件侦听器方法都有一个参数,该参数作为 EventObject 类的子类的对象。例如,鼠标事件侦听器方法将接受 MouseEvent 的实例,而 MouseEvent 派生自 EventObject。
AWT ActionListener Interface
处理 ActionEvent 的类应该实现此接口。该类的对象必须在组件中注册。可以使用 addActionListener() 方法注册对象。当发生动作事件时,将调用该对象的 actionPerformed 方法。
Interface declaration
以下是 java.awt.event.ActionListener 接口的声明:
public interface ActionListener
extends EventListener
ActionListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showActionListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showActionListenerDemo(){
headerLabel.setText("Listener in action: ActionListener");
ScrollPane panel = new ScrollPane();
panel.setBackground(Color.magenta);
Button okButton = new Button("OK");
okButton.addActionListener(new CustomActionListener());
panel.add(okButton);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Ok Button Clicked.");
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT ComponentListener Interface
处理 ComponentEvent 的类应该实现此接口。该类的对象必须在组件中注册。可以使用 addComponentListener() 方法注册对象。组件事件仅用于提供信息。
Interface declaration
以下是 java.awt.event.ComponentListener 接口的声明:
public interface ComponentListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
*void componentHidden(ComponentEvent e) *当组件已被设为不可见时调用。 |
2 |
*void componentMoved(ComponentEvent e) *当组件的位置发生改变时调用。 |
3 |
*void componentResized(ComponentEvent e) *当组件的大小发生改变时调用。 |
4 |
*void componentShown(ComponentEvent e) *当组件已被设为可见时调用。 |
ComponentListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showComponentListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showComponentListenerDemo(){
headerLabel.setText("Listener in action: ComponentListener");
ScrollPane panel = new ScrollPane();
panel.setBackground(Color.magenta);
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
panel.add(msglabel);
msglabel.addComponentListener(new CustomComponentListener());
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomComponentListener implements ComponentListener {
public void componentResized(ComponentEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " resized. ");
}
public void componentMoved(ComponentEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " moved. ");
}
public void componentShown(ComponentEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " shown. ");
}
public void componentHidden(ComponentEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " hidden. ");
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT ItemListener Interface
处理 ItemEvent 的类应该实现此接口。该类的对象必须在组件中注册。可以使用 addItemListener() 方法注册对象。当动作事件发生时,将调用该对象的 itemStateChanged 方法。
Interface declaration
以下是 java.awt.event.ItemListener 接口的声明:
public interface ItemListener
extends EventListener
ItemListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showItemListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showItemListenerDemo(){
headerLabel.setText("Listener in action: ItemListener");
Checkbox chkApple = new Checkbox("Apple");
Checkbox chkMango = new Checkbox("Mango");
Checkbox chkPeer = new Checkbox("Peer");
chkApple.addItemListener(new CustomItemListener());
chkMango.addItemListener(new CustomItemListener());
chkPeer.addItemListener(new CustomItemListener());
controlPanel.add(chkApple);
controlPanel.add(chkMango);
controlPanel.add(chkPeer);
mainFrame.setVisible(true);
}
class CustomItemListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
statusLabel.setText(e.getItem()
+" Checkbox: "
+ (e.getStateChange()==1?"checked":"unchecked"));
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT KeyListener Interface
处理 KeyEvent 的类应实现此接口,该类的对象必须用组件注册。可以使用 addKeyListener() 方法注册该对象。
Interface declaration
下面是 java.awt.event.KeyListener 接口的声明:
public interface KeyListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
void keyPressed(KeyEvent e) 按下按键时调用。 |
2 |
void keyReleased(KeyEvent e) 释放按键时调用。 |
3 |
void keyTyped(KeyEvent e) 输入按键时调用。 |
KeyListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
private TextField textField;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showKeyListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showKeyListenerDemo(){
headerLabel.setText("Listener in action: KeyListener");
textField = new TextField(10);
textField.addKeyListener(new CustomKeyListener());
Button okButton = new Button("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Entered text: " + textField.getText());
}
});
controlPanel.add(textField);
controlPanel.add(okButton);
mainFrame.setVisible(true);
}
class CustomKeyListener implements KeyListener{
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
statusLabel.setText("Entered text: " + textField.getText());
}
}
public void keyReleased(KeyEvent e) {
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT MouseListener Interface
处理 MouseEvent 的类应实现此接口,该类的对象必须用组件注册。可以使用 addMouseListener() 方法注册该对象。
Interface declaration
下面是 java.awt.event.MouseListener 接口的声明:
public interface MouseListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
void mouseClicked(MouseEvent e) 鼠标按钮在组件上单击(按下并释放)时调用。 |
2 |
void mouseEntered(MouseEvent e) 鼠标进入组件时调用。 |
3 |
void mouseExited(MouseEvent e) 鼠标离开组件时调用。 |
4 |
void mousePressed(MouseEvent e) 鼠标按钮在组件上按下时调用。 |
5 |
void mouseReleased(MouseEvent e) 鼠标按键在组件上释放时调用。 |
MouseListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showMouseListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showMouseListenerDemo(){
headerLabel.setText("Listener in action: MouseListener");
Panel panel = new Panel();
panel.setBackground(Color.magenta);
panel.setLayout(new FlowLayout());
panel.addMouseListener(new CustomMouseListener());
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
msglabel.addMouseListener(new CustomMouseListener());
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e) {
statusLabel.setText("Mouse Clicked: ("
+e.getX()+", "+e.getY() +")");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT TextListener Interface
处理 TextEvent 的类应实现此接口,该类的对象必须用组件注册。可以使用 addTextListener() 方法注册该对象。
Interface declaration
下面是 java.awt.event.TextListener 接口的声明:
public interface TextListener
extends EventListener
TextListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
private TextField textField;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showTextListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showTextListenerDemo(){
headerLabel.setText("Listener in action: TextListener");
textField = new TextField(10);
textField.addTextListener(new CustomTextListener());
Button okButton = new Button("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Entered text: "
+ textField.getText());
}
});
controlPanel.add(textField);
controlPanel.add(okButton);
mainFrame.setVisible(true);
}
class CustomTextListener implements TextListener {
public void textValueChanged(TextEvent e) {
statusLabel.setText("Entered text: " + textField.getText());
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT WindowListener Interface
处理 WindowEvent 的类应实现此接口,该类的对象必须用组件注册。可以使用 addWindowListener() 方法注册该对象。
Interface declaration
下面是 java.awt.event.WindowListener 接口的声明:
public interface WindowListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
void windowActivated(WindowEvent e) 将窗口设置为活动窗口时调用。 |
2 |
*void windowClosed(WindowEvent e) *当窗口因调用dispose导致关闭时触发。 |
3 |
*void windowClosing(WindowEvent e) *当用户尝试从窗口的系统菜单关闭窗口时触发。 |
4 |
*void windowDeactivated(WindowEvent e) *当窗口不再为活动窗口时触发。 |
5 |
*void windowDeiconified(WindowEvent e) *当窗口从最小化状态更改为正常状态时触发。 |
6 |
*void windowIconified(WindowEvent e) *当窗口从正常状态更改为最小化状态时触发。 |
7 |
*void windowOpened(WindowEvent e) *当窗口首次可见时触发。 |
WindowListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showWindowListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showWindowListenerDemo(){
headerLabel.setText("Listener in action: WindowListener");
Button okButton = new Button("OK");
aboutFrame = new Frame();
aboutFrame.setSize(300,200);;
aboutFrame.setTitle("WindowListener Demo");
aboutFrame.addWindowListener(new CustomWindowListener());
Label msgLabel = new Label("Welcome to tutorialspoint.");
msgLabel.setAlignment(Label.CENTER);
msgLabel.setSize(100,100);
aboutFrame.add(msgLabel);
aboutFrame.setVisible(true);
}
class CustomWindowListener implements WindowListener {
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
aboutFrame.dispose();
}
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT AdjustmentListener Interface
Class declaration
以下是 java.awt.event.AdjustmentListener 接口的声明:
public interface AdjustmentListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
*void adjustmentValueChanged(AdjustmentEvent e) *当可调整项的值发生更改时触发。 |
AdjustmentListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showAdjustmentListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showAdjustmentListenerDemo(){
headerLabel.setText("Listener in action: AdjustmentListener");
ScrollPane panel = new ScrollPane();
panel.setBackground(Color.magenta);
panel.getHAdjustable().addAdjustmentListener(new CustomAdjustmentListener());
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomAdjustmentListener implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e) {
statusLabel.setText("Adjustment value: "+Integer.toString(e.getValue()));
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT ContainerListener Interface
Class declaration
以下是 java.awt.event.ContainerListener 接口的声明:
public interface ContainerListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
*void componentAdded(ContainerEvent e) *当组件已添加到容器中时触发。 |
2 |
*void componentRemoved(ContainerEvent e) *当组件已从容器中移除时触发。 |
AdjustmentListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showContainerListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showContainerListenerDemo(){
headerLabel.setText("Listener in action: ContainerListener");
ScrollPane panel = new ScrollPane();
panel.setBackground(Color.magenta);
panel.addContainerListener(new CustomContainerListener());
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomContainerListener implements ContainerListener {
public void componentAdded(ContainerEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " added. ");
}
public void componentRemoved(ContainerEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " removed. ");
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT MouseMotionListener Interface
Class declaration
以下是 java.awt.event.MouseMotionListener 接口的声明:
public interface MouseMotionListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
void mouseDragged(MouseEvent e) 当在组件上按下鼠标按钮并拖动时触发。 |
2 |
void mouseMoved(MouseEvent e) 在鼠标光标移动到组件上且未按任何按钮时调用。 |
MouseMotionListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showMouseMotionListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showMouseMotionListenerDemo(){
headerLabel.setText("Listener in action: MouseMotionListener");
Panel panel = new Panel();
panel.setBackground(Color.magenta);
panel.setLayout(new FlowLayout());
panel.addMouseMotionListener(new CustomMouseMotionListener());
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
class CustomMouseMotionListener implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
statusLabel.setText("Mouse Dragged: ("+e.getX()+", "+e.getY() +")");
}
public void mouseMoved(MouseEvent e) {
statusLabel.setText("Mouse Moved: ("+e.getX()+", "+e.getY() +")");
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT FocusListener Interface
Class declaration
以下是 java.awt.event.FocusListener 接口的声明:
public interface FocusListener
extends EventListener
Interface methods
S.N. |
Method & Description |
1 |
void focusGained(FocusEvent e) 当某个组件获取键盘焦点时调用。 |
2 |
void focusLost(FocusEvent e) 当某个组件失去键盘焦点时调用。 |
FocusListener Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showFocusListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showFocusListenerDemo(){
headerLabel.setText("Listener in action: FocusListener");
Button okButton = new Button("OK");
Button cancelButton = new Button("Cancel");
okButton.addFocusListener(new CustomFocusListener());
cancelButton.addFocusListener(new CustomFocusListener());
controlPanel.add(okButton);
controlPanel.add(cancelButton);
mainFrame.setVisible(true);
}
class CustomFocusListener implements FocusListener{
public void focusGained(FocusEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " gained focus. ");
}
public void focusLost(FocusEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName() + " lost focus. ");
}
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtListenerDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtListenerDemo
验证以下输出
AWT FocusAdapter Class
Class declaration
以下是 java.awt.event.FocusAdapter 类的声明:
public abstract class FocusAdapter
extends Object
implements FocusListener
Class methods
S.N. |
Method & Description |
1 |
*void focusGained(FocusEvent e) *当某个组件获取键盘焦点时调用。 |
2 |
*focusLost(FocusEvent e) *当某个组件失去键盘焦点时调用。 |
FocusAdapter Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtAdapterDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtAdapterDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtAdapterDemo awtAdapterDemo = new AwtAdapterDemo();
awtAdapterDemo.showFocusAdapterDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showFocusAdapterDemo(){
headerLabel.setText("Listener in action: FocusAdapter");
Button okButton = new Button("OK");
Button cancelButton = new Button("Cancel");
okButton.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName()
+ " gained focus. ");
}
});
cancelButton.addFocusListener(new FocusAdapter(){
public void focusLost(FocusEvent e) {
statusLabel.setText(statusLabel.getText()
+ e.getComponent().getClass().getSimpleName()
+ " lost focus. ");
}
});
controlPanel.add(okButton);
controlPanel.add(cancelButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtAdapterDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtAdapterDemo
验证以下输出
AWT KeyAdapter Class
Class declaration
以下是 java.awt.event.KeyAdapter 类的声明:
public abstract class KeyAdapter
extends Object
implements KeyListener
Class methods
S.N. |
Method & Description |
1 |
void keyPressed(KeyEvent e) 按下按键时调用。 |
2 |
void keyReleased(KeyEvent e) 释放按键时调用。 |
3 |
void keyTyped(KeyEvent e) 输入按键时调用。 |
KeyAdapter Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtAdapterDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtAdapterDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtAdapterDemo awtAdapterDemo = new AwtAdapterDemo();
awtAdapterDemo.showKeyAdapterDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showKeyAdapterDemo(){
headerLabel.setText("Listener in action: KeyAdapter");
final TextField textField = new TextField(10);
textField.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
statusLabel.setText("Entered text: " + textField.getText());
}
}
});
Button okButton = new Button("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Entered text: " + textField.getText());
}
});
controlPanel.add(textField);
controlPanel.add(okButton);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtAdapterDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtAdapterDemo
验证以下输出
AWT MouseAdapter Class
Class declaration
以下是 java.awt.event.MouseAdapter 类的声明:
public abstract class MouseAdapter
extends Object
implements MouseListener, MouseWheelListener, MouseMotionListener
Class methods
S.N. |
Method & Description |
1 |
void mouseClicked(MouseEvent e) 鼠标按钮在组件上单击(按下并释放)时调用。 |
2 |
*void mouseDragged(MouseEvent e) *在组件的某个鼠标按钮被按下并拖动后调用。 |
3 |
void mouseEntered(MouseEvent e) 鼠标进入组件时调用。 |
4 |
void mouseExited(MouseEvent e) 鼠标离开组件时调用。 |
5 |
*void mouseMoved(MouseEvent e) *当鼠标光标移动到某个组件上但未按下任何按钮时调用。 |
6 |
void mousePressed(MouseEvent e) 鼠标按钮在组件上按下时调用。 |
7 |
*void mouseReleased(MouseEvent e) *当某个鼠标按钮在某个组件上释放时调用。 |
8 |
*void mouseWheelMoved(MouseWheelEvent e) *当鼠标滚轮旋转时调用。 |
MouseAdapter Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtAdapterDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtAdapterDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtAdapterDemo awtAdapterDemo = new AwtAdapterDemo();
awtAdapterDemo.showMouseAdapterDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showMouseAdapterDemo(){
headerLabel.setText("Listener in action: MouseAdapter");
Panel panel = new Panel();
panel.setBackground(Color.magenta);
panel.setLayout(new FlowLayout());
panel.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
statusLabel.setText("Mouse Clicked: ("
+e.getX()+", "+e.getY() +")");
}
});
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
msglabel.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
statusLabel.setText("Mouse Clicked: ("
+e.getX()+", "+e.getY() +")");
}
});
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtAdapterDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtAdapterDemo
验证以下输出
AWT MouseMotionAdapter Class
Class declaration
以下是 java.awt.event.MouseMotionAdapter 类的声明:
public abstract class MouseMotionAdapter
extends Object
implements MouseMotionListener
Class methods
S.N. |
Method & Description |
1 |
*void mouseDragged(MouseEvent e) *在组件的某个鼠标按钮被按下并拖动后调用。 |
2 |
*void mouseMoved(MouseEvent e) *当鼠标光标移动到某个组件上但未按下任何按钮时调用。 |
MouseMotionAdapter Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtAdapterDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtAdapterDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtAdapterDemo awtAdapterDemo = new AwtAdapterDemo();
awtAdapterDemo.showMouseMotionAdapterDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showMouseMotionAdapterDemo(){
headerLabel.setText("Listener in action: MouseMotionAdapter");
Panel panel = new Panel();
panel.setBackground(Color.magenta);
panel.setLayout(new FlowLayout());
panel.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e) {
statusLabel.setText("Mouse Moved: ("+e.getX()+", "+e.getY() +")");
}
});
Label msglabel = new Label();
msglabel.setAlignment(Label.CENTER);
msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtAdapterDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtAdapterDemo
验证以下输出
AWT WindowAdapter Class
Class declaration
以下是 java.awt.event.WindowAdapter 类的声明:
public abstract class WindowAdapter
extends Object
implements WindowListener, WindowStateListener, WindowFocusListener
Class methods
S.N. |
Method & Description |
1 |
* void windowActivated(WindowEvent e) *在激活窗口时调用。 |
2 |
* void windowClosed(WindowEvent e) *在窗口关闭时调用。 |
3 |
* void windowClosing(WindowEvent e) *在窗口正在关闭时调用。 |
4 |
* void windowDeactivated(WindowEvent e) *在停用窗口时调用。 |
5 |
* void windowDeiconified(WindowEvent e) *在窗口取消最小化时调用。 |
6 |
* void windowGainedFocus(WindowEvent e) *在将窗口设置为焦点窗口时调用,这意味着窗口或其子组件之一将接收键盘事件。 |
7 |
* void windowIconified(WindowEvent e) *在窗口最小化时调用。 |
8 |
* void windowLostFocus(WindowEvent e) *当窗口不再是焦点窗口时调用,这意味着键盘事件将不再传递给窗口或其任何子组件。 |
9 |
* void windowOpened(WindowEvent e) *在打开窗口时调用。 |
10 |
* void windowStateChanged(WindowEvent e) *在窗口状态更改时调用。 |
WindowAdapter Example
使用你选择的任意编辑器在给定的 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序
package com.tutorialspoint.gui;
import java.awt.*;
import java.awt.event.*;
public class AwtAdapterDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
public AwtAdapterDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtAdapterDemo awtAdapterDemo = new AwtAdapterDemo();
awtAdapterDemo.showWindowAdapterDemo();
}
private void prepareGUI(){
mainFrame = new Frame("Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showWindowAdapterDemo(){
headerLabel.setText("Listener in action: WindowAdapter");
Button okButton = new Button("OK");
final Frame aboutFrame = new Frame();
aboutFrame.setSize(300,200);;
aboutFrame.setTitle("WindowAdapter Demo");
aboutFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
aboutFrame.dispose();
}
});
Label msgLabel = new Label("Welcome to tutorialspoint.");
msgLabel.setAlignment(Label.CENTER);
msgLabel.setSize(100,100);
aboutFrame.add(msgLabel);
aboutFrame.setVisible(true);
}
}
使用命令提示符编译该程序。转到 *D:/ > AWT * 并键入以下命令。
D:\AWT>javac com\tutorialspoint\gui\AwtAdapterDemo.java
如果没有错误,则表示编译成功。使用以下命令运行该程序。
D:\AWT>java com.tutorialspoint.gui.AwtAdapterDemo
验证以下输出
AWT Layouts
Layout Manager
布局管理器会自动定位容器内的所有控件。即使我们不使用布局管理器,控件也会由默认布局管理器进行定位。可以手动布局控件,但是由于以下两个原因,这样做非常困难。
-
在容器中处理大量控件非常繁琐。
-
我们通常在需要对组件进行排列时没有宽度和高度信息。
Java 为我们提供了各种布局管理器来定位控件。各种布局管理器的特性(如大小、形状和布局方式)各不相同。当小程序或应用程序窗口的大小改变时,组件的大小、形状和布局方式也会做出响应相应的改变,即布局管理器适应小程序查看器或应用程序窗口的尺寸。
布局管理器与容器对象相关联。每个布局管理器都是实现 LayoutManager 接口的类的对象。
以下是定义布局管理器功能的接口和类。
AWT LayoutManager Interface
Interface methods
S.N. |
Method & Description |
1 |
*void addLayoutComponent(String name, Component comp)*如果布局管理器使用每个组件的字符串,向布局中添加组件 comp,并将其与名称指定的字符串相关联。 |
2 |
*void layoutContainer(Container parent)*布局指定的容器。 |
3 |
*Dimension minimumLayoutSize(Container parent)*计算给定指定容器所包含的组件的最小尺寸。 |
4 |
*Dimension preferredLayoutSize(Container parent)*计算给定指定容器所包含的组件的首选尺寸。 |
5 |
*void removeLayoutComponent(Component comp)*从布局中删除指定的组件。 |
AWT LayoutManager2 Interface
Class declaration
以下为 java.awt.LayoutManager2 接口的声明:
public interface LayoutManger2
extends LayoutManager
Interface methods
S.N. |
Method & Description |
1 |
*void addLayoutComponent(Component comp, Object constraints)*添加指定的组件到布局,使用指定的约束对象。 |
2 |
*float getLayoutAlignmentX(Container target)*返回沿 x 轴的对齐方式。 |
3 |
*float getLayoutAlignmentY(Container target)*返回沿 y 轴的对齐方式。 |
4 |
void invalidateLayout(Container target) 使布局无效,表示如果布局管理器缓存信息,则应丢弃该信息。 |
5 |
*Dimension maximumLayoutSize(Container target)*计算给定指定容器所包含的组件的最大尺寸。 |
AWT BorderLayout Class
Introduction
类 BorderLayout 安排组件以适合五个区域:东、西、北、南和中心。每个区域只能包含一个组件,并且每个区域中的每个组件都由相应的常量 NORTH、SOUTH、EAST、WEST 和 CENTER 标识。
Class declaration
以下为 java.awt.BorderLayout 类的声明:
public class BorderLayout
extends Object
implements LayoutManager2, Serializable
Field
以下为 java.awt.BorderLayout 类的字段:
-
*static String AFTER_LAST_LINE * — PAGE_END 的同义词。
-
*static String AFTER_LINE_ENDS * — LINE_END 的同义词。
-
*static String BEFORE_FIRST_LINE * — PAGE_START 的同义词。
-
*static String BEFORE_LINE_BEGINS * — LINE_START 的同义词。
-
*static String CENTER * ——中心布局约束(容器中间)。
-
*static String EAST * ——东部布局约束(容器右侧)。
-
*static String LINE_END * ——组件位于布局的行方向末尾。
-
*static String LINE_START * ——组件位于布局的行方向开始位置。
-
*static String NORTH * ——北布局约束(容器顶部)。
-
*static String PAGE_END * ——组件位于布局内容的最后一行之后。
-
*static String PAGE_START * ——组件位于布局内容的第一行之前。
-
*static String SOUTH * ——南布局约束(容器底部)。
-
*static String WEST * ——西部布局约束(容器左侧)。
Class constructors
S.N. |
Constructor & Description |
1 |
*BorderLayout() *构造一个没有组件间间隙的新边框布局。 |
2 |
*BorderLayout(int hgap, int vgap) *构造一个具有指定组件间间隙的边框布局。 |
Class methods
S.N. |
Method & Description |
1 |
*void addLayoutComponent(Component comp, Object constraints)*添加指定的组件到布局,使用指定的约束对象。 |
2 |
*void addLayoutComponent(String name, Component comp)*如果布局管理器使用每个组件的字符串,向布局中添加组件 comp,并将其与名称指定的字符串相关联。 |
3 |
*int getHgap() *返回组件之间的水平间隙。 |
4 |
*float getLayoutAlignmentX(Container parent) *返回 x 轴上的对齐方式。 |
5 |
*float getLayoutAlignmentY(Container parent) *返回 y 轴上的对齐方式。 |
6 |
*int getVgap() *返回组件之间的垂直间隙。 |
7 |
*void invalidateLayout(Container target) *使布局失效,指示如果布局管理器已缓存信息,则应丢弃该信息。 |
8 |
*void layoutContainer(Container target) * |
9 |
*Dimension maximumLayoutSize(Container target) *返回此布局在指定目标容器中的组件给出的最大尺寸。 |
10 |
*Dimension minimumLayoutSize(Container target) *使用此布局管理器确定目标容器的最小大小。 |
11 |
Dimension preferredLayoutSize(Container target) 根据容器中的组件,使用此布局管理器确定目标容器的首选大小。 |
12 |
void removeLayoutComponent(Component comp) 从此边框布局中移除指定组件。 |
13 |
void setHgap(int hgap) 设置组件之间的水平间距。 |
14 |
void setVgap(int vgap) 设置组件之间的垂直间距。 |
15 |
String toString() 返回此边框布局的状态的字符串表示。 |