AWT 快速指南



图形用户界面

图形用户界面 (GUI) 通过一些图形组件提供用户交互。例如,我们底层的操作系统也通过窗口、框架、面板、按钮、文本字段、文本区域、列表框、组合框、标签、复选框等提供 GUI。这些都称为组件。使用这些组件,我们可以为应用程序创建交互式用户界面。

GUI 对用户触发的事件做出响应并提供结果。GUI 完全基于事件。例如,单击按钮、关闭窗口、打开窗口、在文本区域中输入内容等。这些活动称为事件。GUI 使最终用户更容易使用应用程序。它也使它们更有趣。

基本术语

术语描述
组件组件是一个具有图形表示的对象,可以显示在屏幕上并与用户交互。例如,图形用户界面的按钮、复选框、列表和滚动条。

容器容器对象是一个可以包含其他组件的组件。添加到容器中的组件在一个列表中跟踪。列表的顺序将定义组件在容器内的前后堆叠顺序。如果在将组件添加到容器时未指定索引,则它将添加到列表的末尾。

面板面板提供了一个空间,应用程序可以在其中附加任何其他组件,包括其他面板。

窗口窗口是在屏幕上显示的矩形区域。在不同的窗口中,我们可以执行不同的程序并显示不同的数据。窗口为我们提供了多任务环境。窗口在构造时必须具有框架、对话框或另一个窗口作为其所有者。

框架框架是一个具有标题和边框的顶级窗口。框架的大小包括为边框指定的任何区域。框架封装了窗口。它并具有标题栏、菜单栏、边框和调整大小的角。

画布画布组件表示屏幕上的一个空白矩形区域,应用程序可以在其上绘制。应用程序还可以从画布组件的空白区域捕获来自用户的输入事件。

基于 GUI 的应用程序示例

以下是一些基于 GUI 的应用程序示例。

  • 自动柜员机 (ATM)

  • 航空售票系统

  • 火车站的信息亭

  • 移动应用程序

  • 导航系统

GUI 相对于 CUI 的优势

  • GUI 提供图形图标进行交互,而 CUI(字符用户界面)提供简单的基于文本的界面。

  • GUI 使应用程序更具娱乐性和趣味性,而 CUI 则没有。

  • GUI 提供点击执行环境,而在 CUI 中,我们每次都必须为任务输入命令。

  • 新用户可以通过视觉指示轻松地与图形用户界面交互,但在字符用户界面中则比较困难。

  • GUI 提供了许多对文件系统和操作系统的控制,而在 CUI 中,您必须使用难以记住的命令。

  • GUI 中的窗口概念允许用户同时查看、操作和控制多个应用程序,而在 CUI 中,用户一次只能控制一项任务。

  • GUI 提供多任务环境,CUI 也提供,但 CUI 没有 GUI 提供的那么轻松。

  • 使用 GUI 更容易控制和导航操作系统,这在命令用户界面中变得非常缓慢。GUI 可以轻松自定义。

环境设置

本节指导您如何在机器上下载和设置 Java。请按照以下步骤设置环境。

Java SE 可从以下链接免费获取 下载 Java。因此,您可以根据您的操作系统下载一个版本。

按照说明下载 Java 并运行.exe文件以在您的机器上安装 Java。在您的机器上安装 Java 后,您需要设置环境变量以指向正确的安装目录

为 Windows 2000/XP 设置路径

假设您已将 Java 安装在c:\Program Files\java\jdk目录中

  • 右键单击“我的电脑”,然后选择“属性”。

  • 在“高级”选项卡下单击“环境变量”按钮。

  • 现在更改“Path”变量,使其还包含 Java 可执行文件的路径。例如,如果路径当前设置为“C:\WINDOWS\SYSTEM32”,则将您的路径更改为“C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin”。

为 Windows 95/98/ME 设置路径

假设您已将 Java 安装在c:\Program Files\java\jdk目录中

  • 编辑“C:\autoexec.bat”文件,并在末尾添加以下行

    “SET PATH=%PATH%;C:\Program Files\java\jdk\bin”

为 Linux、UNIX、Solaris、FreeBSD 设置路径

环境变量 PATH 应设置为指向 Java 二进制文件已安装的位置。如果您在执行此操作时遇到问题,请参阅您的 shell 文档。

例如,如果您使用bash作为您的 shell,则您将在“.bashrc”的末尾添加以下行:export PATH=/path/to/java:$PATH

流行的 Java 编辑器

要编写 Java 程序,您需要一个文本编辑器。市场上甚至还有更多更复杂的 IDE 可用。但目前,您可以考虑以下之一

  • 记事本:在 Windows 机器上,您可以使用任何简单的文本编辑器,如记事本(本教程推荐)、TextPad。

  • Netbeans:是一个开源且免费的 Java IDE,可以从 http://www.netbeans.org/index.html 下载。

  • Eclipse:也是一个由 Eclipse 开源社区开发的 Java IDE,可以从 http://www.eclipse.org/ 下载。

AWT 控件

每个用户界面都考虑以下三个主要方面

  • UI 元素:这些是用户最终看到并与其交互的核心视觉元素。GWT 提供了大量广泛使用且常见的元素,从基本到复杂,我们将在本教程中介绍。

  • 布局:它们定义了 UI 元素如何在屏幕上组织,并为 GUI(图形用户界面)提供最终的外观和感觉。这部分将在布局章节中介绍。

  • 行为:这些是用户与 UI 元素交互时发生的事件。这部分将在事件处理章节中介绍。

UI classes

每个 AWT 控件都继承自 Component 类中的属性。

AWT Component 类

简介

Component是 AWT 非菜单用户界面控件的抽象基类。Component 表示具有图形表示的对象。

类声明

以下是java.awt.Component类的声明

public abstract class Component
   extends Object
      implements ImageObserver, MenuContainer, Serializable

字段

以下是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() 的易用性常量。

类构造函数

序号构造函数和描述
1

protected Component()

这将创建一个新的 Component。

类方法

序号方法和描述
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()

通过将其连接到本机屏幕资源来使此 Component 可显示。

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)

返回是否已为此 Component 明确定义给定焦点遍历操作的焦点遍历键集。

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)

支持为布尔属性报告绑定属性更改。

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)

支持为对象属性报告绑定属性更改。

41

void firePropertyChange(String propertyName, short oldValue, short newValue)

报告绑定属性更改。

42

AccessibleContext getAccessibleContext()

获取与此组件关联的 AccessibleContext。

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

以 Rectangle 对象的形式获取此组件的边界。

49

Rectangle getBounds(Rectangle rv)

将此组件的边界存储到返回值 rv 中并返回 rv。

50

ColorModel getColorModel()

获取用于在输出设备上显示组件的 ColorModel 实例。

51

Component getComponentAt(int x,int y)

确定此组件或其直接子组件之一是否包含 (x, y) 位置,如果包含,则返回包含组件。

52

Component getComponentAt(Point p)

返回包含指定点的组件或子组件。

53

ComponentListener[] getComponentListeners()

返回在此组件上注册的所有组件侦听器的数组。

54

ComponentOrientation getComponentOrientation()

检索用于对齐此组件内元素或文本的语言敏感方向。

55

Cursor getCursor()

获取在组件中设置的光标。

56

DropTarget getDropTarget()

获取与此组件关联的 DropTarget。

57

Container getFocusCycleRootAncestor()

返回此组件的焦点遍历循环的焦点循环根容器。

58

FocusListener[] getFocusListeners()

返回在此组件上注册的所有焦点侦听器的数组。

59

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

返回此组件给定遍历操作的焦点遍历键的 Set。

60

boolean getFocusTraversalKeysEnabled()

返回此组件是否启用了焦点遍历键。

61

Font getFont()

获取此组件的字体。

62

FontMetrics getFontMetrics(Font font)

获取指定字体的字体度量。

63

Color getForeground()

获取此组件的前景色。

64

Graphics getGraphics()

为此组件创建图形上下文。

65

GraphicsConfiguration getGraphicsConfiguration()

获取与此组件关联的 GraphicsConfiguration。

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 原点存储到返回值 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() 已过时。从 JDK 1.1 版本开始,程序不应直接操作对等体;已被 boolean isDisplayable() 方法取代。

88

Dimension getPreferredSize()

获取此组件的首选尺寸。

89

PropertyChangeListener[] getPropertyChangeListeners()

返回在此组件上注册的所有属性更改侦听器的数组。

90

PropertyChangeListener[] getPropertyChangeListeners(String propertyName)

返回已与命名属性关联的所有侦听器的数组。

91

Dimension getSize()

以 Dimension 对象的形式返回此组件的尺寸。

92

Dimension getSize(Dimension rv) 将此组件的宽度/高度存储到返回值 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()

使此组件无效。

105

boolean isBackgroundSet()

返回是否已为此组件显式设置背景颜色。

106

boolean isCursorSet()

返回是否已为此组件显式设置光标。

107

boolean isDisplayable()

确定此组件是否可显示。

108

boolean isDoubleBuffered()

如果此组件绘制到屏幕外图像(缓冲区)则返回 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()

如果最大尺寸已设置为非空值,则返回 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

组件 locate(int x,int y)

已弃用。从 JDK 版本 1.1 开始,由 getComponentAt(int, int) 替换。

133

点 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()

重新绘制此组件。

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() 替换。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

AWT 标签类

简介

标签是一个被动控件,因为它在用户访问时不会创建任何事件。标签控件是 Label 的对象。标签显示一行只读文本。但是,文本可以由应用程序程序员更改,但不能以任何方式由最终用户更改。

类声明

以下是 **java.awt.Label** 类的声明

public class Label
   extends Component
      implements Accessible

字段

以下是java.awt.Component类的字段

  • **static int CENTER** -- 表示标签应居中。

  • **static int LEFT** -- 表示标签应左对齐。

  • **static int RIGHT** -- 表示标签应右对齐。

类构造函数

序号构造函数和描述
1

Label()

构造一个空标签。

2

Label(String text)

构造一个新的标签,其中包含指定的文本字符串,左对齐。

3

Label(String text, int alignment)

构造一个新的标签,该标签以指定的对齐方式显示指定的文本字符串。

类方法

序号方法和描述
1

void addNotify()

创建此标签的对等体。

2

AccessibleContext getAccessibleContext()

获取与此 Label 关联的 AccessibleContext。

3

int getAlignment()

获取此标签的当前对齐方式。

4

String getText()

获取此标签的文本。

5

protected String paramString()

返回表示此 Label 状态的字符串。

6

void setAlignment(int alignment)

将此标签的对齐方式设置为指定的对齐方式。

7

void setText(String text)

将此标签的文本设置为指定的文本。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

标签示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Label

AWT 按钮类

简介

按钮是一个控件组件,它有一个标签,并在按下时生成一个事件。当按下并释放按钮时,AWT 通过调用按钮上的 processEvent 方法向按钮发送一个 ActionEvent 实例。按钮的 processEvent 方法接收按钮的所有事件;它通过调用自己的 processActionEvent 方法传递操作事件。后一种方法将操作事件传递给任何已注册对该按钮生成的事件感兴趣的操作侦听器。

如果应用程序希望根据按钮的按下和释放执行某些操作,则应实现 ActionListener 并注册新的侦听器以接收来自此按钮的事件,方法是调用按钮的 addActionListener 方法。应用程序可以使用按钮的操作命令作为消息传递协议。

类声明

以下是java.awt.Button类的声明

public class Button
   extends Component
      implements Accessible

类构造函数

序号构造函数和描述
1

Button()

构造一个按钮,其标签为空字符串。

2

Button(String text)

使用指定的标签构造一个新的按钮。

类方法

序号方法和描述
1

void addActionListener(ActionListener l)

添加指定的动作侦听器以接收来自此按钮的动作事件。

2

void addNotify()

创建按钮的同级。

3

AccessibleContext getAccessibleContext()

获取与此 Button 关联的 AccessibleContext。

4

String getActionCommand()

返回此按钮触发的操作事件的命令名称。

5

ActionListener[] getActionListeners()

返回在此按钮上注册的所有操作侦听器的数组。

6

String getLabel()

获取此按钮的标签。

7

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 Button 上注册为 FooListeners 的所有对象的数组。

8

protected String paramString()

返回表示此 Button 状态的字符串。

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)

将按钮的标签设置为指定的字符串。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

按钮示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Button

AWT 复选框类

简介

复选框控件用于打开(true)或关闭(false)选项。每个复选框都有一个标签,表示复选框的作用。可以通过单击复选框来更改其状态。

类声明

以下是java.awt.Checkbox类的声明

public class Checkbox
   extends Component
      implements ItemSelectable,Accessible

类构造函数

序号构造函数和描述
1

Checkbox()

创建一个复选框,其标签为空字符串。

2

Checkbox(String label)

创建一个具有指定标签的复选框。

3

Checkbox(String label, boolean state)

创建一个具有指定标签的复选框,并设置指定状态。

4

Checkbox(String label, boolean state, CheckboxGroup group)

构造一个具有指定标签的复选框,设置为指定状态,并在指定的复选框组中。

5

Checkbox(String label, CheckboxGroup group, boolean state)

创建一个具有指定标签的复选框,位于指定的复选框组中,并设置为指定状态。

类方法

序号方法和描述
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)

返回当前在此 Checkbox 上注册为 FooListeners 的所有对象的数组。

8

Object[] getSelectedObjects()

返回一个包含复选框标签的数组(长度为 1),如果复选框未选中,则返回 null。

9

boolean getState()

确定此复选框处于状态。

10

protected String paramString()

返回表示此 Checkbox 状态的字符串。

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)

将此复选框的状态设置为指定状态。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

复选框示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 CheckBox

AWT 复选框组类

简介

CheckboxGroup 类用于对复选框集进行分组。

类声明

以下是java.awt.CheckboxGroup类的声明

public class CheckboxGroup
   extends Object
      implements Serializable

类构造函数

序号构造函数和描述
1

CheckboxGroup() ()

创建一个新的 CheckboxGroup 实例。

类方法

序号方法和描述
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()

返回此复选框组的字符串表示形式,包括其当前选择的值。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

复选框组示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 CheckBoxGroup

AWT 列表类

简介

List 表示文本项列表。可以配置列表,以便用户可以选择一个或多个项目。

类声明

以下是java.awt.List类的声明

public class List
   extends Component
      implements ItemSelectable, Accessible

类构造函数

序号构造函数和描述
1

List()

创建一个新的滚动列表。

2

List(int rows)

创建一个新的滚动列表,并使用指定的可见行数进行初始化。

3

List(int rows, boolean multipleMode)

创建一个新的滚动列表,初始化以显示指定的行数。

类方法

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 List 上注册为 FooListeners 的所有对象的数组。

序号方法和描述
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()

获取与此 List 关联的 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()

获取此滚动列表中选定的项目,存储在 Object 数组中。

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) 替换。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

列表示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 List

AWT 文本字段类

简介

textField 组件允许用户编辑单行文本。当用户在文本字段中键入一个键时,事件将发送到 TextField。键事件可能是键按下、键释放或键入。键事件传递给已注册的 KeyListener。如果在文本字段上启用了 ActionEvent,则按下回车键也可能会触发 ActionEvent。

类声明

以下是java.awt.TextField类的声明

public class TextField
   extends TextComponent

类构造函数

序号构造函数和描述
1

TextField()

构造一个新的文本字段。

2

TextField(int columns)

使用指定的列数构造一个新的空文本字段。

3

TextField(String text)

构造一个新的文本字段,并使用指定的文本进行初始化。

4

TextField(String text, int columns)

构造一个新的文本字段,使用指定的文本进行显示,并且宽度足以容纳指定数量的列。

类方法

序号方法和描述
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 上注册为 FooListeners 的所有对象的数组。

9

Dimension getMinimumSize()

获取此文本字段的最小尺寸。

10

Dimension getMinimumSize(int 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)

移除指定的动作监听器,使其不再接收来自此文本字段的动作事件。

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)

将此文本组件呈现的文本设置为指定的文本。

继承的方法

此类继承自以下类的方法

  • java.awt.TextComponent

  • java.awt.Component

  • java.lang.Object

TextField 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 TextField

AWT TextArea 类

简介

AWT 中的 TextArea 控件为我们提供了多行编辑区域。用户可以在这里输入任意数量的文本。当文本区域中的文本大于可视区域时,会自动出现滚动条,帮助我们上下和左右滚动文本。

类声明

以下是 java.awt.TextArea 类的声明

public class TextArea
   extends TextComponent

字段

以下是 java.awt.TextArea 类的字段

  • static int SCROLLBARS_BOTH -- 创建并显示垂直和水平滚动条。

  • static int SCROLLBARS_HORIZONTAL_ONLY -- 仅创建并显示水平滚动条。

  • static int SCROLLBARS_NONE -- 不为文本区域创建或显示任何滚动条。

  • static int SCROLLBARS_VERTICAL_ONLY -- 仅创建并显示垂直滚动条。

类构造函数

序号构造函数和描述
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)

构造一个新的文本区域,使用指定的文本,以及指定的行数、列数和滚动条可见性。

类方法

序号方法和描述
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)

设置此文本区域的行数。

继承的方法

此类继承自以下类的方法

  • java.awt.TextComponent

  • java.awt.Component

  • java.lang.Object

TextArea 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 TextArea

AWT Choice 类

简介

Choice 控件用于显示选项的弹出菜单。选定的选项显示在菜单顶部。

类声明

以下是 java.awt.Choice 类的声明

public class Choice
   extends Component
      implements ItemSelectable, Accessible

类构造函数

序号构造函数和描述
1

Choice() ()

创建一个新的选择菜单。

类方法

序号方法和描述
1

void add(String item)

在此 Choice 菜单中添加一个项目。

2

void addItem(String item)

从 Java 2 平台 v1.1 开始已过时。

3

void addItemListener(ItemListener l)

添加指定的项目监听器,以接收来自此 Choice 菜单的项目事件。

4

void addNotify()

创建 Choice 的对等体。

5

int countItems()

已弃用。从 JDK 版本 1.1 开始,由 getItemCount() 替换。

6

AccessibleContext getAccessibleContext()

获取与此 Choice 关联的 AccessibleContext。

7

String getItem(int index)

获取此 Choice 菜单中指定索引处的字符串。

8

int getItemCount()

返回此 Choice 菜单中的项目数。

9

ItemListener[] getItemListeners()

返回在此选择上注册的所有项目监听器的数组。

10

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 Choice 上注册为 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)

通过将发生在此 Choice 菜单上的项目事件分派到任何已注册的 ItemListener 对象来处理这些事件。

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 菜单中的所选项目设置为名称等于指定字符串的项目。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

Choice 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Choice

AWT Canvas 类

简介

Canvas 控件表示一个矩形区域,应用程序可以在其中绘制内容或接收用户创建的输入。

类声明

以下是 java.awt.Canvas 类的声明

public class Canvas
   extends Component
      implements Accessible

类构造函数

序号构造函数和描述
1

Canvas()

构造一个新的 Canvas。

2

Canvas(GraphicsConfiguration config)

给定一个 GraphicsConfiguration 对象,构造一个新的 Canvas。

类方法

序号方法和描述
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)

更新此画布。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

Canvas 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Canvas

AWT Image 类

简介

Image 控件是所有表示图形图像的图像类的超类。

类声明

以下是 java.awt.Image 类的声明

public abstract class Image
   extends Object

字段

以下是 java.awt.Image 类的字段

  • protected float accelerationPriority -- 加速此图像的优先级。

  • static int SCALE_AREA_AVERAGING -- 使用区域平均图像缩放算法。

  • static int SCALE_DEFAULT -- 使用默认的图像缩放算法。

  • static int SCALE_FAST -- 选择一个图像缩放算法,该算法比缩放图像的平滑度更优先考虑缩放速度。

  • static int SCALE_REPLICATE -- 使用 ReplicateScaleFilter 类中体现的图像缩放算法。

  • static int SCALE_SMOOTH -- 选择一个图像缩放算法,该算法比缩放速度更优先考虑图像平滑度。

  • static Object UndefinedProperty -- 每当获取未为特定图像定义的属性时,应返回 UndefinedProperty 对象。

类构造函数

序号构造函数和描述
1

Image()

类方法

序号方法和描述
1

void flush()

刷新此 Image 对象正在使用的所有可重建资源。

2

float getAccelerationPriority()

返回加速优先级提示的当前值。

3

ImageCapabilities getCapabilities(GraphicsConfiguration gc)

返回一个 ImageCapabilities 对象,可以查询其在指定的 GraphicsConfiguration 上此 Image 的功能。

4

abstract Graphics getGraphics()

创建一个图形上下文,用于绘制到屏幕外图像。

5

abstract int getHeight(ImageObserver observer)

确定图像的高度。

6

abstract Object getProperty(String name, ImageObserver observer)

按名称获取此图像的属性。

7

Image getScaledInstance(int width, int height, int hints)

创建此图像的缩放版本。

8

abstract ImageProducer getSource()

获取为图像生成像素的对象。

9

abstract int getWidth(ImageObserver observer)

确定图像的宽度。

10

void setAccelerationPriority(float priority)

为此图像设置一个关于加速重要性的提示。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

图像示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Image

AWT 滚动条类

简介

滚动条控件表示一个滚动条组件,以便用户从值的范围内进行选择。

类声明

以下是java.awt.Scrollbar类的声明

public class Scrollbar
   extends Component
      implements Adjustable, Accessible

字段

以下是 java.awt.Image 类的字段

  • static int HORIZONTAL --表示水平滚动条的常量。

  • static int VERTICAL --表示垂直滚动条的常量。

类构造函数

序号构造函数和描述
1

Scrollbar()

构造一个新的垂直滚动条。

2

Scrollbar(int orientation)

使用指定的方位构造一个新的滚动条。

3

Scrollbar(int orientation, int value, int visible, int minimum, int maximum)

使用指定的方位、初始值、可见量以及最小值和最大值构造一个新的滚动条。

类方法

AccessibleContext getAccessibleContext()

获取与此滚动条关联的 AccessibleContext。

AdjustmentListener[] getAdjustmentListeners()

返回在此滚动条上注册的所有调整监听器的数组。

<T extends EventListener>T[] getListeners(Class<T> listenerType)

返回当前在此滚动条上注册为 FooListeners 的所有对象的数组。

序号方法和描述
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)

设置此滚动条的可见量。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

滚动条示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Scrollbar

AWT 对话框类

简介

对话框控件表示一个顶级窗口,带有标题和边框,用于从用户那里获取某种形式的输入。

类声明

以下是java.awt.Dialog类的声明

public class Dialog
extends Window

字段

以下是 java.awt.Image 类的字段

  • static Dialog.ModalityType DEFAULT_MODALITY_TYPE -- 模态对话框的默认模态类型。

类构造函数

序号构造函数和描述
1

Dialog(Dialog owner)

使用指定的拥有者对话框和空标题构造一个最初不可见的、非模态对话框。

2

Dialog(Dialog owner, String title)

使用指定的拥有者对话框和标题构造一个最初不可见的、非模态对话框。

3

Dialog(Dialog owner, String title, boolean modal)

使用指定的拥有者对话框、标题和模态性构造一个最初不可见的对话框。

4

Dialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc)

使用指定的拥有者对话框、标题、模态性和 GraphicsConfiguration 构造一个最初不可见的对话框。

5

Dialog(Frame owner)

使用指定的拥有者框架和空标题构造一个最初不可见的、非模态对话框。

6

Dialog(Frame owner, boolean modal)

使用指定的拥有者框架和模态性以及空标题构造一个最初不可见的对话框。

7

Dialog(Frame owner, String title)

使用指定的拥有者框架和标题构造一个最初不可见的、非模态对话框。

8

Dialog(Frame owner, String title, boolean modal)

使用指定的拥有者框架、标题和模态性构造一个最初不可见的对话框。

9

Dialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc)

使用指定的拥有者框架、标题、模态性和 GraphicsConfiguration 构造一个最初不可见的对话框。

10

Dialog(Window owner)

使用指定的拥有者窗口和空标题构造一个最初不可见的、非模态对话框。

11

Dialog(Window owner, Dialog.ModalityType modalityType)

使用指定的拥有者窗口和模态性以及空标题构造一个最初不可见的对话框。

12

Dialog(Window owner, String title)

使用指定的拥有者窗口和标题构造一个最初不可见的、非模态对话框。

13

Dialog(Window owner, String title, Dialog.ModalityType modalityType)

使用指定的拥有者窗口、标题和模态性构造一个最初不可见的对话框。

14

Dialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc)

使用指定的拥有者窗口、标题、模态性和 GraphicsConfiguration 构造一个最初不可见的对话框

类方法

序号方法和描述
1

void addNotify()

通过将其连接到本机屏幕资源使此对话框可显示。

2

AccessibleContext getAccessibleContext()

获取与此对话框关联的 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)

设置对话框的标题。

14

void setUndecorated(boolean undecorated)

禁用或启用此对话框的修饰。

15

void setVisible(boolean b)

根据参数 b 的值显示或隐藏此对话框。

16

void show()

已过时。从 JDK 版本 1.5 开始,由 setVisible(boolean) 替换。

17

void toBack()

如果此窗口可见,则将此窗口发送到后面,如果它是焦点或活动窗口,则可能会导致它失去焦点或激活。

继承的方法

此类继承自以下类的方法

  • java.awt.Window

  • java.awt.Component

  • java.lang.Object

对话框示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Dialog

AWT 文件对话框类

简介

文件对话框控件表示一个对话框窗口,用户可以在其中选择文件。

类声明

以下是java.awt.FileDialog类的声明

public class FileDialog
   extends Dialog

字段

以下是 java.awt.Image 类的字段

  • static int LOAD -- 此常量值指示文件对话框窗口的目的是查找要从中读取的文件。

  • static int SAVE -- 此常量值指示文件对话框窗口的目的是查找要写入的文件。

类构造函数

序号构造函数和描述
1

FileDialog(Dialog parent)

创建用于加载文件的对话框。

2

FileDialog(Dialog parent, String title)

创建具有指定标题的文件对话框窗口以加载文件。

3

FileDialog(Dialog parent, String title, int mode)

创建具有指定标题的文件对话框窗口以加载或保存文件。

4

FileDialog(Frame parent)

创建用于加载文件的对话框。

5

FileDialog(Frame parent, String title)

创建具有指定标题的文件对话框窗口以加载文件。

6

FileDialog(Frame parent, String title, int mode)

创建具有指定标题的文件对话框窗口以加载或保存文件。

类方法

序号方法和描述
1

void addNotify()

创建文件对话框的同级。

2

String getDirectory()

获取此文件对话框的目录。

3

String getFile()

获取此文件对话框选定的文件。

4

FilenameFilter getFilenameFilter()

确定此文件对话框的文件名过滤器。

5

int getMode()

指示此文件对话框框是用于从文件加载还是用于保存到文件。

6

protected String paramString()

返回表示此 FileDialog 窗口状态的字符串。

7

void setDirectory(String dir)

将此文件对话框窗口的目录设置为指定的目录。

8

void setFile(String file)

将此文件对话框窗口选定的文件设置为指定的文件。

9

void setFilenameFilter(FilenameFilter filter)

将此文件对话框窗口的文件名过滤器设置为指定的过滤器。

10

void setMode(int mode)

设置文件对话框的模式。

继承的方法

此类继承自以下类的方法

  • java.awt.Dialog

  • java.awt.Window

  • java.awt.Component

  • java.lang.Object

文件对话框示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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

验证以下输出

AWT FileDialog

事件处理

什么是事件?

对象状态的变化称为事件,即事件描述源的状态变化。事件是由于用户与图形用户界面组件交互而产生的。例如,单击按钮、移动鼠标、通过键盘输入字符、从列表中选择项目、滚动页面等活动都会导致事件发生。

事件的类型

事件可以大致分为两类

  • 前台事件 - 需要用户直接交互的事件。它们是由于用户与图形用户界面中的图形组件交互而产生的。例如,单击按钮、移动鼠标、通过键盘输入字符、从列表中选择项目、滚动页面等。

  • 后台事件 - 不需要最终用户交互的事件称为后台事件。操作系统中断、硬件或软件故障、计时器超时、操作完成都是后台事件的示例。

什么是事件处理?

事件处理是一种控制事件并决定事件发生时应该执行什么操作的机制。这种机制包含称为事件处理程序的代码,当事件发生时会执行该代码。Java 使用委托事件模型来处理事件。此模型定义了生成和处理事件的标准机制。让我们简要介绍一下此模型。

委托事件模型具有以下主要参与者:

  • - 源是发生事件的对象。源负责将其处理程序提供发生的事件信息。Java 为源对象提供了类。

  • 监听器 - 也称为事件处理程序。监听器负责对事件做出响应。从 Java 实现的角度来看,监听器也是一个对象。监听器等待直到收到事件。一旦收到事件,监听器就会处理该事件,然后返回。

这种方法的好处是用户界面逻辑与生成事件的逻辑完全分离。用户界面元素能够将事件处理委托给单独的代码部分。在此模型中,需要将监听器注册到源对象,以便监听器可以接收事件通知。这是一种有效的事件处理方式,因为事件通知仅发送给希望接收它们的监听器。

事件处理涉及的步骤

  • 用户单击按钮,并生成事件。

  • 现在,相关事件类的对象会自动创建,并且有关源和事件的信息会填充到同一个对象中。

  • 事件对象被转发到已注册的监听器类的 method 中。

  • 现在 method 被执行并返回。

关于监听器需要记住的要点

  • 为了设计监听器类,我们必须开发一些监听器接口。这些监听器接口预测了一些必须由监听器类实现的公共抽象回调方法。

  • 如果不实现任何预定义的接口,则您的类不能充当源对象的监听器类。

回调方法

这些方法由 API 提供者提供,由应用程序程序员定义,并由应用程序开发人员调用。这里,回调方法表示事件方法。响应事件,Java JRE 将触发回调方法。所有此类回调方法都在监听器接口中提供。

如果某个组件希望某个监听器侦听其事件,则源必须将其自身注册到监听器。

事件处理示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.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 Handling

AWT 事件类

事件类表示事件。Java 为我们提供了各种事件类,但我们将讨论那些更常用的类。

EventObject 类

它是所有事件状态对象都应从中派生的根类。所有事件都使用对对象的引用(即)进行构造,该对象在逻辑上被认为是事件最初发生的对象。此类在 java.util 包中定义。

类声明

以下是java.util.EventObject 类的声明

public class EventObject
   extends Object
      implements Serializable

字段

以下是java.util.EventObject 类的字段

  • protected Object source -- 事件最初发生的对象。

类构造函数

序号构造函数和描述
1

EventObject(Object source)

构造一个原型事件。

类方法

序号方法和描述
1

Object getSource()

事件最初发生的对象。

2

String toString()

返回此 EventObject 的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

AWT 事件类

以下是常用事件类的列表。

AWT AWTEvent 类

它是所有 AWT 事件的根事件类。此类及其子类取代了原始的 java.awt.Event 类。此类在 java.awt 包中定义。此类具有名为 getID() 的方法,可用于确定事件的类型。

类声明

以下是java.awt.AWTEvent 类的声明

public class AWTEvent
   extends EventObject

字段

以下是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 -- 用于选择窗口状态事件的事件掩码。

类构造函数

序号构造函数和描述
1

AWTEvent(Event event)

从 1.0 风格事件的参数构造 AWTEvent 对象。

2

AWTEvent(java.lang.Object source, int id)

使用指定的源对象和类型构造 AWTEvent 对象。

类方法

序号方法和描述
1

protected void consume()

使用此事件(如果此事件可以使用)。

2

int getID()

返回事件类型。

3

protected boolean isConsumed()

返回此事件是否已被使用。

4

java.lang.String paramString()

返回表示此事件状态的字符串。

5

void setSource(java.lang.Object newSource)

将事件重新定位到新的源。

6

java.lang.String toString()

返回此对象的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.util.EventObject

  • java.lang.Object

AWT ActionEvent 类

此类在 java.awt.event 包中定义。当单击按钮或双击列表项时,将生成 ActionEvent。

类声明

以下是java.awt.event.ActionEvent 类的声明

public class ActionEvent
   extends AWTEvent

字段

以下是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 键修饰符。

类构造函数

序号构造函数和描述
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 对象。

类方法

序号方法和描述
1

java.lang.String getActionCommand()

返回与此操作关联的命令字符串。

2

int getModifiers()

返回在此操作事件期间按住的修饰键。

3

long getWhen()

返回此事件发生的时间戳。

4

java.lang.String paramString()

返回识别此操作事件的参数字符串。

继承的方法

此类继承自以下类的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT InputEvent 类

InputEvent 类是所有组件级输入事件的根事件类。在输入事件以其默认方式由其来源正常处理之前,会将其传递给侦听器。这允许侦听器和组件子类“使用”事件,以便源不会以其默认方式处理它们。例如,使用 Button 组件上的 mousePressed 事件将阻止 Button 被激活。

类声明

以下是java.awt.event.InputEvent 类的声明

public abstract class InputEvent
   extends ComponentEvent

字段

以下是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 -- Ctrl 键扩展修饰符常量。

  • static int CTRL_MASK -- Ctrl 键修饰符常量。

  • static int META_DOWN_MASK -- Meta 键扩展修饰符常量。

  • static int META_MASK -- Meta 键修饰符常量。

  • static int SHIFT_DOWN_MASK -- Shift 键扩展修饰符常量。

  • static int SHIFT_MASK -- Shift 键修饰符常量。

类方法

序号方法和描述
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 修饰键是否按下。

继承的方法

此类继承自以下类的方法

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT KeyEvent 类

在输入字符时会生成键盘事件。键盘事件有三种类型,用整数常量表示。这些键盘事件如下:

  • KEY_PRESSED

  • KEY_RELASED

  • KEY_TYPED

类声明

以下是java.awt.event.KeyEvent类的声明

public class KeyEvent
   extends InputEvent

字段

以下是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_0 --VK_0 到 VK_9 与 ASCII '0' 到 '9' 相同 (0x30 - 0x39)

  • 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 上下文菜单键的常量。

  • 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 功能键的常量。

  • static int VK_F23 --F23 功能键的常量。

  • static int VK_F24 --F24 功能键的常量。

  • static int VK_F3 --F3 功能键的常量。

  • static int VK_F4 --F4 功能键的常量。

  • static int VK_F5 --F5 功能键的常量。

  • static int VK_F6 --F6 功能键的常量。

  • static int VK_F7 --F7 功能键的常量。

  • static int VK_F8 --F8 功能键的常量。

  • static int VK_F9 --F9 功能键的常量。

  • static int VK_FINAL

  • static int VK_FIND

  • static int VK_FULL_WIDTH --全角字符功能键的常量。

  • static int VK_G

  • static int VK_GREATER

  • static int VK_H

  • static int VK_HALF_WIDTH --半角字符功能键的常量。

  • static int VK_HELP

  • static int VK_HIRAGANA --平假名功能键的常量。

  • static int VK_HOME

  • static int VK_I

  • static int VK_INPUT_METHOD_ON_OFF --输入法开关键的常量。

  • static int VK_INSERT

  • static int VK_INVERTED_EXCLAMATION_MARK --倒置感叹号键的常量。

  • static int VK_J

  • static int VK_JAPANESE_HIRAGANA --日语平假名功能键的常量。

  • static int VK_JAPANESE_KATAKANA --日语片假名功能键的常量。

  • static int VK_JAPANESE_ROMAN --日语罗马字功能键的常量。

  • static int VK_K

  • static int VK_KANA

  • static int VK_KANA_LOCK --锁定假名功能键的常量。

  • static int VK_KANJI

  • static 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

类构造函数

序号构造函数和描述
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)

类方法

序号方法和描述
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 起

继承的方法

此类继承自以下类的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT MouseEvent 类

此事件指示在组件中发生了鼠标操作。此低级事件由组件对象为鼠标事件和鼠标移动事件生成。

  • 鼠标按钮被按下

  • 鼠标按钮被释放

  • 鼠标按钮被点击(按下并释放)

  • 鼠标光标进入组件几何图形的未遮挡部分

  • 鼠标光标退出组件几何图形的未遮挡部分

  • 鼠标被移动

  • 鼠标被拖动

类声明

以下是java.awt.event.MouseEvent类的声明

public class MouseEvent
   extends InputEvent

字段

以下是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”键的常量。

类构造函数

序号构造函数和描述
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 对象。

类方法

序号方法和描述
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() 返回此鼠标事件是否为此平台的弹出菜单触发器事件。

11

String paramString()

返回一个参数字符串,用于标识此事件。

12

void translatePoint(int x, int y)

通过添加指定的 x(水平)和 y(垂直)偏移量将事件的坐标转换为新位置。

继承的方法

此类继承自以下类的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT TextEvent 类

此类的对象表示文本事件。当在文本字段或文本区域中输入字符时,会生成 TextEvent。TextEvent 实例不包含生成事件的文本组件中当前的字符,而是为我们提供了其他方法来检索该信息。

类声明

以下是java.awt.event.TextEvent类的声明

public class TextEvent
   extends AWTEvent

字段

以下是java.awt.event.TextEvent类的字段

  • static int TEXT_FIRST --用于文本事件的 ID 范围中的第一个数字。

  • static int TEXT_LAST --用于文本事件的 ID 范围中的最后一个数字。

  • static int TEXT_VALUE_CHANGED --此事件 ID 指示对象的文本已更改。

类构造函数

<0tr>
序号构造函数和描述
1

TextEvent(Object source, int id)

构造一个 TextEvent 对象。

类方法

序号方法和描述
1

String paramString()

返回一个参数字符串,用于标识此文本事件。

继承的方法

此类继承自以下类的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT WindowEvent 类

此类的对象表示窗口状态的更改。当窗口打开、关闭、激活、停用、图标化或取消图标化,或当焦点转移到窗口中或从窗口中转移时,窗口对象会生成此低级事件。

类声明

以下是java.awt.event.WindowEvent类的声明

public class WindowEvent
   extends ComponentEvent

字段

以下是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 --窗口状态更改事件类型。

类构造函数

<0tr>
序号构造函数和描述
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)

使用指定的相反窗口构造一个 WindowEvent 对象。

4

WindowEvent(Window source, int id, Window opposite, int oldState, int newState)

构造一个 WindowEvent 对象。

类方法

序号方法和描述
1

int getNewState()

对于 WINDOW_STATE_CHANGED 事件,返回窗口的新状态。

2

int getOldState()

对于 WINDOW_STATE_CHANGED 事件,返回窗口的先前状态。

3

Window getOppositeWindow()

返回参与此焦点或激活更改的其他窗口。

4

Window getWindow()

返回事件的发起者。

5

String paramString()

返回一个参数字符串,用于标识此事件。

继承的方法

此类继承自以下类的方法

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT AdjustmentEvent 类

简介

AdjustmentEvent表示由 Adjustable 对象发出的调整事件。

类声明

以下是java.awt.event.AdjustmentEvent类的声明

public class AdjustmentEvent
   extends AWTEvent

字段

以下是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 --单位递增调整类型。

类构造函数

序号构造函数和描述
1

AdjustmentEvent(Adjustable source, int id, int type, int value)

使用指定的 Adjustable 源、事件类型、调整类型和值构造一个 AdjustmentEvent 对象。

2

AdjustmentEvent(Adjustable source, int id, int type, int value, boolean isAdjusting)

使用指定的 Adjustable 源、事件类型、调整类型和值构造一个 AdjustmentEvent 对象。

类方法

序号方法和描述
1

Adjustable getAdjustable()

返回此事件起源的 Adjustable 对象。

2

int getAdjustmentType()

返回导致值更改事件的调整类型。

3

int getValue()

返回调整事件中的当前值。

4

boolean getValueIsAdjusting()

如果这是多个调整事件之一,则返回 true。

5

String paramString()

返回表示此事件状态的字符串。

继承的方法

此接口继承自以下类的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT ComponentEvent 类

简介

ComponentEvent表示组件移动、大小更改或可见性更改

类声明

以下是java.awt.event.ComponentEvent类的声明

public class ComponentEvent
   extends AWTEvent

字段

以下是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 -- 此事件表示组件变得可见。

类构造函数

序号构造函数和描述
1

ComponentEvent(Component source, int id)

构造一个 ComponentEvent 对象。

类方法

序号方法和描述
1

Component getComponent()

返回事件的发起者。

2

String paramString()

返回一个参数字符串,用于标识此事件。

继承的方法

此接口继承自以下类的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT ContainerEvent 类

简介

ContainerEvent 类表示容器的内容发生了变化,因为添加或删除了组件。

类声明

以下是java.awt.event.ContainerEvent类的声明

public class ContainerEvent
   extends ComponentEvent

字段

以下是java.awt.Component类的字段

  • static int COMPONENT_ADDED -- 此事件表示组件已添加到容器中。

  • static int COMPONENT_REMOVED -- 此事件表示组件已从容器中移除。

  • static int CONTAINER_FIRST -- 用于容器事件的 ID 范围中的第一个数字。

  • static int CONTAINER_LAST -- 用于容器事件的 ID 范围中的最后一个数字。

类构造函数

类方法

序号构造函数和描述
1

ContainerEvent(Component source, int id, Component child)

构造一个 ContainerEvent 对象。

序号方法和描述
1

Component getChild()

返回受事件影响的组件。

2

Container getContainer()

返回事件的发起者。

3

String paramString()

返回一个参数字符串,用于标识此事件。

继承的方法

此类继承自以下类的方法

  • java.awt.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT MouseMotionEvent 类

简介

MouseMotionEvent 接口指示在组件中发生了鼠标操作。当鼠标被拖动或移动时,组件对象会生成此低级事件。

类声明

以下是java.awt.event.MouseMotionEvent类的声明

public class MouseMotionEvent
   extends InputEvent

接口方法

序号方法和描述
1

void mouseDragged(MouseEvent e)

在组件上按下鼠标按钮然后拖动时调用。

2

void mouseMoved(MouseEvent e)

当鼠标光标已移动到组件上但未按下任何按钮时调用。

继承的方法

此接口继承自以下类的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT PaintEvent 类

简介

PaintEvent 类用于确保 paint/update 方法调用与从事件队列传递的其他事件一起序列化。

类声明

以下是java.awt.event.PaintEvent类的声明

public class PaintEvent
   extends ComponentEvent

字段

以下是java.awt.Component类的字段

  • static int PAINT -- 绘制事件类型。

  • static int PAINT_FIRST -- 标记绘制事件 ID 范围的第一个整数 ID。

  • static int PAINT_LAST -- 标记绘制事件 ID 范围的最后一个整数 ID。

  • static int UPDATE -- 更新事件类型。

类构造函数

序号构造函数和描述
1

PaintEvent(Component source, int id, Rectangle updateRect)

使用指定的源组件和类型构造一个 PaintEvent 对象。

类方法

序号方法和描述
1

Rectangle getUpdateRect()

返回表示需要重新绘制的区域的矩形,以响应此事件。

2

String paramString()

返回一个参数字符串,用于标识此事件。

3

void setUpdateRect(Rectangle updateRect)

设置表示需要重新绘制的区域的矩形,以响应此事件。

继承的方法

此类继承自以下类的方法

  • java.awt.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT 事件监听器

事件监听器表示负责处理事件的接口。Java 为我们提供了各种事件监听器类,但我们将讨论那些更常用的类。每个事件监听器方法都有一个参数作为对象,该对象是 EventObject 类的子类。例如,鼠标事件监听器方法将接受 MouseEvent 的实例,其中 MouseEvent 派生自 EventObject。

EventListner 接口

这是一个标记接口,每个监听器接口都必须扩展它。此类在 java.util 包中定义。

类声明

以下是java.util.EventListener接口的声明

public interface EventListener

AWT 事件监听器接口

以下是常用事件监听器的列表。

AWT ActionListener 接口

处理 ActionEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addActionListener() 方法注册该对象。当动作事件发生时,将调用该对象的 actionPerformed 方法。

接口声明

以下是java.awt.event.ActionListener接口的声明

public interface ActionListener
   extends EventListener

接口方法

序号方法和描述
1

void actionPerformed(ActionEvent e)

当发生操作时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

ActionListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 ActionListener

AWT ComponentListener 接口

处理 ComponentEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addComponentListener() 方法注册该对象。组件事件仅出于信息目的而引发。

接口声明

以下是java.awt.event.ComponentListener接口的声明

public interface ComponentListener
   extends EventListener

接口方法

序号方法和描述
1

void componentHidden(ComponentEvent e)

当组件变得不可见时调用。

2

void componentMoved(ComponentEvent e)

当组件的位置发生变化时调用。

3

void componentResized(ComponentEvent e)

当组件的大小发生变化时调用。

4

void componentShown(ComponentEvent e)

当组件变得可见时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

ComponentListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 ComponentListener

AWT ItemListener 接口

处理 ItemEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addItemListener() 方法注册该对象。当动作事件发生时,将调用该对象的 itemStateChanged 方法。

接口声明

以下是java.awt.event.ItemListener接口的声明

public interface ItemListener
   extends EventListener

接口方法

序号方法和描述
1

void itemStateChanged(ItemEvent e)

当用户选择或取消选择项目时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

ItemListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 ItemListener

AWT KeyListener 接口

处理 KeyEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addKeyListener() 方法注册该对象。

接口声明

以下是java.awt.event.KeyListener接口的声明

public interface KeyListener
   extends EventListener

接口方法

序号方法和描述
1

void keyPressed(KeyEvent e)

当按下键时调用。

2

void keyReleased(KeyEvent e)

当释放键时调用。

3

void keyTyped(KeyEvent e)

当键入键时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

KeyListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 KeyListener

AWT MouseListener 接口

处理 MouseEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addMouseListener() 方法注册该对象。

接口声明

以下是java.awt.event.MouseListener接口的声明

public interface MouseListener
   extends EventListener

接口方法

序号方法和描述
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)

当在组件上释放鼠标按钮时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

MouseListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 MouseListener

AWT TextListener 接口

处理 TextEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addTextListener() 方法注册该对象。

接口声明

以下是java.awt.event.TextListener接口的声明

public interface TextListener
   extends EventListener

接口方法

序号方法和描述
1

void textValueChanged(TextEvent e)

当文本的值发生变化时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

TextListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 TextListener

AWT WindowListener 接口

处理 WindowEvent 的类应该实现此接口。该类的对象必须与组件注册。可以使用 addWindowListener() 方法注册该对象。

接口声明

以下是java.awt.event.WindowListener接口的声明

public interface WindowListener
   extends EventListener

接口方法

序号方法和描述
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)

第一次使窗口可见时调用。

继承的方法

此接口继承自以下接口

  • java.awt.EventListener

WindowListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 WindowListener

AWT AdjustmentListener 接口

简介

AdjustmentListener 接口用于接收调整事件。处理调整事件的类需要实现此接口。

类声明

以下是java.awt.event.AdjustmentListener接口的声明

public interface AdjustmentListener
extends EventListener

接口方法

序号方法和描述
1

void adjustmentValueChanged(AdjustmentEvent e)

当可调整对象的的值发生变化时调用。

继承的方法

此类继承自以下接口

  • java.awt.event.EventListener

AdjustmentListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 AdjustmentListener

AWT ContainerListener 接口

简介

ContainerListener 接口用于接收容器事件。处理容器事件的类需要实现此接口。

类声明

以下是java.awt.event.ContainerListener接口的声明

public interface ContainerListener
extends EventListener

接口方法

序号方法和描述
1

void componentAdded(ContainerEvent e)

当组件已添加到容器中时调用。

2

void componentRemoved(ContainerEvent e)

当组件已从容器中移除时调用。

继承的方法

此类继承自以下接口

  • java.awt.event.EventListener

AdjustmentListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 ContainerListener

AWT MouseMotionListener 接口

简介

MouseMotionListener 接口用于接收组件上的鼠标移动事件。处理鼠标移动事件的类需要实现此接口。

类声明

以下是java.awt.event.MouseMotionListener接口的声明

public interface MouseMotionListener
extends EventListener

接口方法

序号方法和描述
1

void mouseDragged(MouseEvent e)

在组件上按下鼠标按钮然后拖动时调用。

2

void mouseMoved(MouseEvent e)

当鼠标光标已移动到组件上但未按下任何按钮时调用。

继承的方法

此类继承自以下接口

  • java.awt.event.EventListener

MouseMotionListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 MouseMotionListener

AWT FocusListener 接口

简介

FocusListener 接口用于接收键盘焦点事件。处理焦点事件的类需要实现此接口。

类声明

以下是java.awt.event.FocusListener接口的声明

public interface FocusListener
extends EventListener

接口方法

序号方法和描述
1

void focusGained(FocusEvent e)

当组件获得键盘焦点时调用。

2

void focusLost(FocusEvent e)

当组件失去键盘焦点时调用。

继承的方法

此类继承自以下接口

  • java.awt.event.EventListener

FocusListener 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.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 focusListener

AWT 事件适配器

适配器是用于接收各种事件的抽象类。这些类中的方法为空。这些类存在是为了方便创建监听器对象。

AWT 适配器

以下是监听 AWT 中 GUI 事件时常用的适配器列表。

AWT FocusAdapter 类

简介

FocusAdapter 类是一个用于接收键盘焦点事件的抽象(适配器)类。此类中的所有方法都为空。此类是用于创建监听器对象的便捷类。

类声明

以下是java.awt.event.FocusAdapter类的声明

public abstract class FocusAdapter
   extends Object
      implements FocusListener

类构造函数

序号构造函数和描述
1

FocusAdapter()

类方法

序号方法和描述
1

void focusGained(FocusEvent e)

当组件获得键盘焦点时调用。

2

focusLost(FocusEvent e)

当组件失去键盘焦点时调用。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

FocusAdapter 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.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 FocusAdapter

AWT KeyAdapter 类

简介

KeyAdapter 类是一个用于接收键盘事件的抽象(适配器)类。此类中的所有方法都为空。此类是用于创建监听器对象的便捷类。

类声明

以下是java.awt.event.KeyAdapter类的声明

public abstract class KeyAdapter
   extends Object
      implements KeyListener

类构造函数

序号构造函数和描述
1

KeyAdapter()

类方法

序号方法和描述
1

void keyPressed(KeyEvent e)

当按下键时调用。

2

void keyReleased(KeyEvent e)

当释放键时调用。

3

void keyTyped(KeyEvent e)

当键入键时调用。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

KeyAdapter 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.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 KeyAdapter

AWT MouseAdapter 类

简介

MouseAdapter 类是一个用于接收鼠标事件的抽象(适配器)类。此类中的所有方法都为空。此类是用于创建监听器对象的便捷类。

类声明

以下是java.awt.event.MouseAdapter类的声明

public abstract class MouseAdapter
   extends Object
      implements MouseListener, MouseWheelListener, MouseMotionListener

类构造函数

序号构造函数和描述
1

MouseAdapter()

类方法

序号方法和描述
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)

当鼠标滚轮旋转时调用。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

MouseAdapter 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.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 MouseAdapter

AWT MouseMotionAdapter 类

简介

MouseMotionAdapter 类是一个用于接收鼠标移动事件的抽象(适配器)类。此类中的所有方法都为空。此类是用于创建监听器对象的便捷类。

类声明

以下是java.awt.event.MouseMotionAdapter类的声明

public abstract class MouseMotionAdapter
   extends Object
      implements MouseMotionListener

类构造函数

序号构造函数和描述
1

MouseMotionAdapter()

类方法

序号方法和描述
1

void mouseDragged(MouseEvent e)

在组件上按下鼠标按钮然后拖动时调用。

2

void mouseMoved(MouseEvent e)

当鼠标光标已移动到组件上但未按下任何按钮时调用。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

MouseMotionAdapter 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.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 MouseMotionAdapter

AWT WindowAdapter 类

简介

WindowAdapter 类是一个用于接收窗口事件的抽象(适配器)类。此类中的所有方法都为空。此类是用于创建监听器对象的便捷类。

类声明

以下是java.awt.event.WindowAdapter类的声明

public abstract class WindowAdapter
   extends Object
      implements WindowListener, WindowStateListener, WindowFocusListener

类构造函数

序号构造函数和描述
1

WindowAdapter()

类方法

序号方法和描述
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)

当窗口状态发生更改时调用。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

WindowAdapter 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.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 WindowAdapter

AWT 布局

简介

布局是指容器内组件的排列方式。换句话说,就是将组件放置在容器内的特定位置。布局控件的任务由布局管理器自动完成。

布局管理器

布局管理器会自动将所有组件放置在容器内。如果我们不使用布局管理器,组件也会由默认的布局管理器进行定位。也可以手动布局控件,但由于以下两个原因,这会变得非常困难。

  • 处理容器内大量控件非常繁琐。

  • 通常,当我们需要排列组件时,不会给出组件的宽度和高度信息。

Java 为我们提供了各种布局管理器来定位控件。诸如大小、形状和排列等属性在不同的布局管理器之间有所不同。当 Applet 或应用程序窗口的大小发生变化时,组件的大小、形状和排列也会相应地发生变化,即布局管理器会适应 AppletViewer 或应用程序窗口的尺寸。

布局管理器与每个容器对象相关联。每个布局管理器都是实现 LayoutManager 接口的类的对象。

以下是定义布局管理器功能的接口和类。

AWT LayoutManager 接口

简介

接口LayoutManager 用于定义知道如何布局容器的类的接口。

类声明

以下是java.awt.LayoutManager 接口的声明

public interface LayoutManager

接口方法

序号方法和描述
1

void addLayoutComponent(String name, Component comp)

如果布局管理器使用每个组件的字符串,则将组件 comp 添加到布局中,并将其与 name 指定的字符串相关联。

2

void layoutContainer(Container parent)

布局指定的容器。

3

Dimension minimumLayoutSize(Container parent)

根据包含的组件计算指定容器的最小尺寸。

4

Dimension preferredLayoutSize(Container parent)

根据包含的组件计算指定容器的首选尺寸。

5

void removeLayoutComponent(Component comp)

从布局中移除指定的组件。

AWT LayoutManager2 接口

简介

接口LayoutManger 用于定义知道如何基于布局约束对象布局容器的类的接口。

类声明

以下是java.awt.LayoutManager2 接口的声明

public interface LayoutManger2
   extends LayoutManager

接口方法

序号方法和描述
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 类

简介

BorderLayout 将组件排列在五个区域中:东、西、北、南和中。每个区域只能包含一个组件,并且每个区域中的每个组件都由相应的常量 NORTH、SOUTH、EAST、WEST 和 CENTER 标识。

类声明

以下是java.awt.BorderLayout 类的声明

public class BorderLayout
   extends Object
      implements LayoutManager2, Serializable

字段

以下是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 -- 西部布局约束(容器的左侧)。

类构造函数

序号构造函数和描述
1

BorderLayout()

构造一个新的边框布局,组件之间没有间隙。

2

BorderLayout(int hgap, int vgap)

构造一个新的边框布局,组件之间具有指定的间隙。

类方法

序号方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

使用指定的约束对象将指定的组件添加到布局中。

2

void addLayoutComponent(String name, Component comp)

如果布局管理器使用每个组件的字符串,则将组件 comp 添加到布局中,并将其与 name 指定的字符串相关联。

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

返回此边框布局状态的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

BorderLayout 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showBorderLayoutDemo();       
   }
      
   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);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showBorderLayoutDemo(){
      headerLabel.setText("Layout in action: BorderLayout");      

      Panel panel = new Panel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      BorderLayout layout = new BorderLayout();
      layout.setHgap(10);
      layout.setVgap(10);
      panel.setLayout(layout);        
	  
      panel.add(new Button("Center"),BorderLayout.CENTER);
      panel.add(new Button("Line Start"),BorderLayout.LINE_START); 
      panel.add(new Button("Line End"),BorderLayout.LINE_END);
      panel.add(new Button("East"),BorderLayout.EAST);   
      panel.add(new Button("West"),BorderLayout.WEST); 
      panel.add(new Button("North"),BorderLayout.NORTH); 
      panel.add(new Button("South"),BorderLayout.SOUTH); 

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

验证以下输出

AWT BorderLayout

AWT CardLayout 类

简介

CardLayout 将容器中的每个组件都排列成卡片。一次只能看到一张卡片,容器充当卡片堆栈。

类声明

以下是java.awt.CardLayout 类的声明

public class CardLayout
   extends Object
      implements LayoutManager2, Serializable

类构造函数

序号构造函数和描述
1

CardLayout()

创建一个新的卡片布局,间隙大小为零。

2

CardLayout(int hgap, int vgap)

使用指定的水平和垂直间隙创建一个新的卡片布局。

类方法

序号方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

将指定的组件添加到此卡片布局的内部名称表中。

2

void addLayoutComponent(String name, Component comp)

如果布局管理器使用每个组件的字符串,则将组件 comp 添加到布局中,并将其与 name 指定的字符串相关联。

3

void first(Container parent)

翻转到容器的第一张卡片。

4

int getHgap()

获取组件之间的水平间隙。

5

float getLayoutAlignmentX(Container parent)

返回沿 x 轴的对齐方式。

6

float getLayoutAlignmentY(Container parent)

返回沿 y 轴的对齐方式。

7

int getVgap()

获取组件之间的垂直间隙。

8

void invalidateLayout(Container target)

使布局无效,表示如果布局管理器已缓存信息,则应将其丢弃。

9

void last(Container parent)

翻转到容器的最后一张卡片。

10

void layoutContainer(Container parent)

使用此卡片布局布局指定的容器。

11

Dimension maximumLayoutSize(Container target)

返回给定指定目标容器中组件的此布局的最大尺寸。

12

Dimension minimumLayoutSize(Container parent)

计算指定面板的最小大小。

13

void next(Container parent)

翻转到指定容器的下一张卡片。

14

Dimension preferredLayoutSize(Container parent)

使用此卡片布局确定容器参数的首选大小。

15

void previous(Container parent)

翻转到指定容器的前一张卡片。

16

void removeLayoutComponent(Component comp)

从布局中移除指定的组件。

17

void setHgap(int hgap)

设置组件之间的水平间隙。

18

void setVgap(int vgap)

设置组件之间的垂直间隙。

19

void show(Container parent, String name)

翻转到使用 addLayoutComponent 添加到此布局的具有指定名称的组件。

20

String toString()

返回此卡片布局状态的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

CardLayout 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showCardLayoutDemo();       
   }
      
   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);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showCardLayoutDemo(){
      headerLabel.setText("Layout in action: CardLayout");      

      final Panel panel = new Panel();
      panel.setBackground(Color.CYAN);
      panel.setSize(300,300);

      CardLayout layout = new CardLayout();
      layout.setHgap(10);
      layout.setVgap(10);
      panel.setLayout(layout);        

      Panel buttonPanel = new Panel(new FlowLayout());

      buttonPanel.add(new Button("OK"));
      buttonPanel.add(new Button("Cancel"));    

      Panel textBoxPanel = new Panel(new FlowLayout());

      textBoxPanel.add(new Label("Name:"));
      textBoxPanel.add(new TextField(20));

      panel.add("Button", buttonPanel);
      panel.add("Text", textBoxPanel);

      Choice choice = new Choice();
      choice.add("Button");
      choice.add("Text");

      choice.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            CardLayout cardLayout = (CardLayout)(panel.getLayout());
            cardLayout.show(panel, (String)e.getItem());
         }
      });
      controlPanel.add(choice);
      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

验证以下输出

AWT CardLayout

AWT FlowLayout 类

简介

FlowLayout 以从左到右的流方式排列组件。

类声明

以下是java.awt.FlowLayout 类的声明

public class FlowLayout
   extends Object
      implements LayoutManager, Serializable

字段

以下是java.awt.BorderLayout 类的字段

  • static int CENTER -- 此值表示组件的每一行都应居中。

  • static int LEADING -- 此值表示组件的每一行都应与容器方向的前缘对齐,例如,在从左到右的方向中对齐到左侧。

  • static int LEFT -- 此值表示组件的每一行都应左对齐。

  • static int RIGHT -- 此值表示组件的每一行都应右对齐。

  • static int TRAILING -- 此值表示组件的每一行都应与容器方向的后缘对齐,例如,在从左到右的方向中对齐到右侧。

类构造函数

序号构造函数和描述
1

FlowLayout()

构造一个新的 FlowLayout,其对齐方式为居中,默认水平和垂直间隙为 5 个单位。

2

FlowLayout(int align)

构造一个新的 FlowLayout,其对齐方式为指定值,默认水平和垂直间隙为 5 个单位。

3

FlowLayout(int align, int hgap, int vgap)

使用指示的对齐方式和指示的水平和垂直间隙创建一个新的流布局管理器。

类方法

序号方法和描述
1

void addLayoutComponent(String name, Component comp)

将指定的组件添加到布局中。

2

int getAlignment()

获取此布局的对齐方式。

3

int getHgap()

获取组件之间的水平间隙。

4

int getVgap()

获取组件之间的垂直间隙。

5

void layoutContainer(Container target)

布局容器。

6

Dimension minimumLayoutSize(Container target)

返回布局包含在指定目标容器中的可见组件所需的最小尺寸。

7

Dimension preferredLayoutSize(Container target)

返回给定指定目标容器中可见组件的此布局的首选尺寸。

8

void removeLayoutComponent(Component comp)

从布局中移除指定的组件。

9

void setAlignment(int align)

设置此布局的对齐方式。

10

void setHgap(int hgap)

设置组件之间的水平间隙。

11

void setVgap(int vgap)

设置组件之间的垂直间隙。

12

String toString()

返回此 FlowLayout 对象及其值的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

FlowLayout 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showFlowLayoutDemo();       
   }
      
   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);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showFlowLayoutDemo(){
      headerLabel.setText("Layout in action: FlowLayout");      

      Panel panel = new Panel();
      panel.setBackground(Color.darkGray);
      panel.setSize(200,200);
      FlowLayout layout = new FlowLayout();
      layout.setHgap(10);              
      layout.setVgap(10);
      panel.setLayout(layout);        
      panel.add(new Button("OK"));
      panel.add(new Button("Cancel"));       

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

验证以下输出

AWT FlowLayout

AWT GridLayout 类

简介

GridLayout 将组件排列在矩形网格中。

类声明

以下是java.awt.GridLayout 类的声明

public class GridLayout
   extends Object
      implements LayoutManager, Serializable

类构造函数

序号构造函数和描述
1

GridLayout()

创建一个网格布局,默认情况下每个组件一列,一行。

2

GridLayout(int rows, int cols)

使用指定行数和列数创建一个网格布局。

3

GridLayout(int rows, int cols, int hgap, int vgap)

使用指定行数和列数创建一个网格布局。

类方法

序号方法和描述
1

void addLayoutComponent(String name, Component comp)

使用指定的名称将指定的组件添加到布局中。

2

int getColumns()

获取此布局中的列数。

3

int getHgap()

获取组件之间的水平间隙。

4

int getRows()

获取此布局中的行数。

5

int getVgap()

获取组件之间的垂直间隙。

6

void layoutContainer(Container parent)

使用此布局布局指定的容器。

7

Dimension minimumLayoutSize(Container parent)

使用此网格布局确定容器参数的最小大小。

8

Dimension preferredLayoutSize(Container parent)

使用此网格布局确定容器参数的首选大小。

9

void removeLayoutComponent(Component comp)

从布局中移除指定的组件。

10

void setColumns(int cols)

将此布局中的列数设置为指定值。

11

void setHgap(int hgap)

将组件之间的水平间隙设置为指定值。

12

void setRows(int rows)

将此布局中的行数设置为指定值。

13

void setVgap(int vgap)

将组件之间的垂直间隙设置为指定值。

14

String toString()

返回此网格布局值的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

GridLayout 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showGridLayoutDemo();       
   }
      
   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);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showGridLayoutDemo(){
      headerLabel.setText("Layout in action: GridLayout");      

      Panel panel = new Panel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      GridLayout layout = new GridLayout(0,3);
      layout.setHgap(10);
      layout.setVgap(10);
      
      panel.setLayout(layout);        
      panel.add(new Button("Button 1"));
      panel.add(new Button("Button 2")); 
      panel.add(new Button("Button 3")); 
      panel.add(new Button("Button 4")); 
      panel.add(new Button("Button 5")); 
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

验证以下输出

AWT GridLayout

AWT GridBagLayout 类

简介

GridBagLayout 以水平和垂直方式排列组件。

类声明

以下是java.awt.GridBagLayout 类的声明

public class GridBagLayout
   extends Object
      implements LayoutManager2, Serializable

字段

以下是java.awt.BorderLayout 类的字段

  • double[] columnWeights -- 此字段保存对列权重的覆盖。

  • int[] columnWidths -- 此字段保存对列最小宽度的覆盖。

  • protected Hashtable comptable -- 此哈希表维护组件与其网格包约束之间的关联。

  • protected GridBagConstraints defaultConstraints -- 此字段保存一个包含默认值的网格包约束实例,因此,如果组件没有与其关联的网格包约束,则该组件将被分配 defaultConstraints 的副本。

  • protected java.awt.GridBagLayoutInfo layoutInfo -- 此字段保存网格包的布局信息。

  • protected static int MAXGRIDSIZE -- 网格包布局可以布局的最大网格位置数(水平和垂直)。

  • protected static int MINSIZE -- 网格包布局可以布局的最小网格。

  • protected static int PREFERREDSIZE -- 网格包布局可以布局的首选网格大小。

  • int[] rowHeights -- 此字段保存对行最小高度的覆盖。

  • double[] rowWeights -- 此字段保存对行权重的覆盖。

类构造函数

序号构造函数和描述
1

GridBagLayout()

创建一个网格包布局管理器。

类方法

序号方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

使用指定的约束对象将指定的组件添加到布局中。

2

void addLayoutComponent(String name, Component comp)

使用指定的名称将指定的组件添加到布局中。

3

protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)

根据约束几何形状和填充,将 x、y、宽度和高度字段调整为正确的值。

4

protected void AdjustForGravity(GridBagConstraints constraints, Rectangle r)

此方法已过时,仅为了向后兼容而提供;新代码应调用 adjustForGravity。

5

protected void arrangeGrid(Container parent)

布局网格。

6

protected void ArrangeGrid(Container parent)

此方法已过时,仅为了向后兼容而提供;新代码应调用 arrangeGrid。

7

GridBagConstraints getConstraints(Component comp)

获取指定组件的约束。

8

float getLayoutAlignmentX(Container parent)

返回沿 x 轴的对齐方式。

9

float getLayoutAlignmentY(Container parent)

返回沿 y 轴的对齐方式。

10

int[][] getLayoutDimensions()

确定布局网格的列宽和行高。

11

protected java.awt.GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)

为当前一组受管理的子项填充 GridBagLayoutInfo 的实例。

12

protected java.awt.GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)

此方法已过时,仅为了向后兼容而提供;新代码应调用 getLayoutInfo。

13

Point getLayoutOrigin()

确定布局区域的原点,位于目标容器的图形坐标空间中。

14

double[][] getLayoutWeights()

确定布局网格的列和行的权重。

15

protected Dimension getMinSize(Container parent, java.awt.GridBagLayoutInfo info)

根据 getLayoutInfo() 中的信息计算主容器的最小尺寸。

16

protected Dimension GetMinSize(Container parent, java.awt.GridBagLayoutInfo info)

此方法已过时,仅为了向后兼容而提供;新代码应调用 getMinSize。

17

void invalidateLayout(Container target)

使布局无效,表示如果布局管理器已缓存信息,则应将其丢弃。

18

void layoutContainer(Container parent)

使用此网格包布局布局指定的容器。

19

Point location(int x, int y)

确定布局网格中包含由 (x, y) 指定的点的哪个单元格。

20

protected GridBagConstraints lookupConstraints(Component comp)

检索指定组件的约束。

21

Dimension maximumLayoutSize(Container target)

返回给定指定目标容器中组件的此布局的最大尺寸。

22

Dimension minimumLayoutSize(Container parent)

使用此网格包布局确定父容器的最小尺寸。

23

Dimension preferredLayoutSize(Container parent)

使用此网格包布局确定父容器的首选尺寸。

24

void removeLayoutComponent(Component comp)

从此布局中移除指定的组件。

25

void setConstraints(Component comp, GridBagConstraints constraints)

设置此布局中指定组件的约束。

26

String toString()

返回此网格包布局值的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

GridBagLayout 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showGridBagLayoutDemo();       
   }
      
   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);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showGridBagLayoutDemo(){
      headerLabel.setText("Layout in action: GridBagLayout");      

      Panel panel = new Panel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      GridBagLayout layout = new GridBagLayout();

      panel.setLayout(layout);        
      GridBagConstraints gbc = new GridBagConstraints();

      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.gridx = 0;
      gbc.gridy = 0;
      panel.add(new Button("Button 1"),gbc);

      gbc.gridx = 1;
      gbc.gridy = 0;
      panel.add(new Button("Button 2"),gbc); 

      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.ipady = 20;   
      gbc.gridx = 0;
      gbc.gridy = 1;
      panel.add(new Button("Button 3"),gbc); 

      gbc.gridx = 1;
      gbc.gridy = 1;       
      panel.add(new Button("Button 4"),gbc);  

      gbc.gridx = 0;
      gbc.gridy = 2;      
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.gridwidth = 2;
      panel.add(new Button("Button 5"),gbc);  

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

验证以下输出

AWT GridBagLayout

AWT 容器

容器是 AWT GUI 组件的组成部分。容器提供了一个组件可以放置的空间。AWT 中的容器本身就是一个组件,它增加了向自身添加组件的功能。以下是要考虑的要点。

  • Container 的子类称为 Containter。例如 Panel、Frame 和 Window。

  • Container 只能向自身添加 Component。

  • 每个容器中都存在一个默认布局,可以使用 setLayout 方法覆盖它。

AWT Container 类

简介

Container是 AWT 容器的超类。Container 对象可以包含其他 AWT 组件。

类声明

以下是java.awt.Container类的声明

public class Container
   extends Component

类构造函数

序号构造函数和描述
1

Container()

这将创建一个新的 Container。

类方法

序号方法和描述
1

Component add(Component comp)

将指定的组件附加到此容器的末尾。

2

Component add(Component comp, int index)

在给定位置将指定的组件添加到此容器。

3

void add(Component comp, Object constraints)

将指定的组件添加到此容器的末尾。

4

void add(Component comp, Object constraints, int index)

使用指定的约束在指定索引处将指定的组件添加到此容器。

5

Component add(String name, Component comp)

将指定的组件添加到此容器。

6

void addContainerListener(ContainerListener l)

添加指定的容器侦听器以接收来自此容器的容器事件。

7

protected void addImpl(Component comp, Object constraints, int index)

在指定的索引处将指定的组件添加到此容器。

8

void addNotify()

通过将其连接到本机屏幕资源使此 Container 可显示。

9

void addPropertyChangeListener(PropertyChangeListener listener)

将 PropertyChangeListener 添加到监听器列表。

10

void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

为特定属性将 PropertyChangeListener 添加到监听器列表。

11

void applyComponentOrientation(ComponentOrientation o)

设置此容器及其包含的所有组件的 ComponentOrientation 属性。

12

boolean areFocusTraversalKeysSet(int id)

返回是否已为此 Container 显式定义给定焦点遍历操作的一组焦点遍历键。

13

int countComponents()

已弃用。从 JDK 版本 1.1 开始,由 getComponentCount() 替换。

14

void deliverEvent(Event e)

已弃用。从 JDK 版本 1.1 开始,由 dispatchEvent(AWTEvent e) 替换

15

void doLayout()

导致此容器布局其组件。

16

Component findComponentAt(int x, int y)

找到包含指定位置的可见子组件。

17

Component findComponentAt(Point p)

找到包含指定点的可见子组件。

18

float getAlignmentX()

返回沿 x 轴的对齐方式。

19

float getAlignmentY()

返回沿 y 轴的对齐方式。

20

Component getComponent(int n)

获取此容器中的第 n 个组件。

21

Component getComponentAt(int x, int y)

找到包含 x,y 位置的组件。

22

Component getComponentAt(Point p)

获取包含指定点的组件。

23

int getComponentCount()

获取此面板中的组件数量。

24

Component[] getComponents()

获取此容器中的所有组件。

25

int getComponentZOrder(Component comp)

返回组件在容器内的 z 顺序索引。

26

ContainerListener[] getContainerListeners()

返回在此容器上注册的所有容器侦听器的数组。

27

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

返回为此 Container 的给定遍历操作的一组焦点遍历键。

28

FocusTraversalPolicy getFocusTraversalPolicy()

返回将管理此 Container 的子项的键盘遍历的焦点遍历策略,如果此 Container 不是焦点循环根,则返回 null。

29

Insets getInsets()

确定此容器的内边距,这些内边距指示容器边框的大小。

30

LayoutManager getLayout()

获取此容器的布局管理器。

31

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 Container 上注册为 FooListeners 的所有对象的数组。

32

Dimension getMaximumSize()

返回此容器的最大尺寸。

33

Dimension getMinimumSize()

返回此容器的最小尺寸。

34

Point getMousePosition(boolean allowChildren)

如果 Container 在鼠标指针下,则返回此 Container 的坐标空间中鼠标指针的位置,否则返回 null。

35

Dimension getPreferredSize()

返回此容器的首选尺寸。

36

Insets insets()

已弃用。从 JDK 版本 1.1 开始,由 getInsets() 替换。

37

void invalidate()

使容器无效。

38

boolean isAncestorOf(Component c)

检查组件是否包含在此容器的组件层次结构中。

39

boolean isFocusCycleRoot()

返回此 Container 是否是焦点遍历循环的根。

40

boolean isFocusCycleRoot(Container container)

返回指定的 Container 是否为此 Container 的焦点遍历循环的焦点循环根。

41

boolean isFocusTraversalPolicyProvider()

返回此容器是否提供焦点遍历策略。

42

boolean isFocusTraversalPolicySet()

返回是否已为此 Container 显式设置焦点遍历策略。

43

void layout()

已过时。从 JDK 1.1 版本开始,已被 doLayout() 方法取代。

44

void list(PrintStream out, int indent)

将此容器的列表打印到指定的输出流。

45

void list(PrintWriter out, int indent)

从指定的缩进开始,将列表打印到指定的打印写入器。

46

Component locate(int x, int y)

已弃用。从 JDK 版本 1.1 开始,由 getComponentAt(int, int) 替换。

47

Dimension minimumSize()

已弃用。从 JDK 版本 1.1 开始,由 getMinimumSize() 替换。

48

void paint(Graphics g)

绘制容器。

49

void paintComponents(Graphics g)

绘制此容器中的每个组件。

50

protected String paramString()

返回表示此 Container 状态的字符串。

51

Dimension preferredSize()

已弃用。从 JDK 版本 1.1 开始,由 getPreferredSize() 替换。

52

void print(Graphics g)

打印容器。

53

void printComponents(Graphics g)

打印此容器中的每个组件。

54

protected void processContainerEvent(ContainerEvent e)

通过将容器事件分派到任何注册的 ContainerListener 对象来处理在此容器上发生的容器事件。

55

protected void processEvent(AWTEvent e)

处理此容器上的事件。

56

void remove(Component comp)

从此容器中移除指定的组件。

57

void remove(int index)

从此容器中移除由索引指定的组件。

58

void removeAll()

从此容器中移除所有组件。

59

void removeContainerListener(ContainerListener l)

移除指定的容器侦听器,使其不再接收来自此容器的容器事件。

60

void removeNotify()

通过移除其与本机屏幕资源的连接使此 Container 无法显示。

61

void setComponentZOrder(Component comp, int index)

将指定的组件移动到容器中指定的 z 顺序索引。

62

void setFocusCycleRoot(boolean focusCycleRoot)

设置此 Container 是否是焦点遍历循环的根。

63

void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)

为此 Container 的给定遍历操作设置焦点遍历键。

64

void setFocusTraversalPolicy(FocusTraversalPolicy policy)

如果此 Container 是焦点循环根,则设置将管理此 Container 的子项的键盘遍历的焦点遍历策略。

65

void setFocusTraversalPolicyProvider(boolean provider)

设置此容器是否将用于提供焦点遍历策略。

66

void setFont(Font f)

设置此容器的字体。

67

void setLayout(LayoutManager mgr)

设置此容器的布局管理器。

68

void transferFocusBackward()

将焦点转移到上一个组件,就像此组件是焦点所有者一样。

69

void transferFocusDownCycle()

将焦点向下转移一个焦点遍历循环。

70

void update(Graphics g)

更新容器。

71

void validate()

验证此容器及其所有子组件。

72

protected void validateTree()

递归遍历容器树并重新计算标记为需要它的任何子树的布局(标记为无效的那些)。

继承的方法

此类继承自以下类的方法

  • java.awt.Component

  • java.lang.Object

AWT Panel 类

简介

Panel是最简单的容器类。它提供了一个空间,应用程序可以在其中附加任何其他组件,包括其他面板。它使用 FlowLayout 作为默认布局管理器。

类声明

以下是java.awt.Panel类的声明

public class Panel
   extends Container
      implements Accessible

类构造函数

序号构造函数和描述
1

Panel()

使用默认布局管理器创建一个新的面板。

2

Panel(LayoutManager layout)

使用指定的布局管理器创建一个新的面板。

类方法

序号方法和描述
1

void addNotify()

创建 Panel 的对等体。

2

AccessibleContext getAccessibleContext()

获取与此 Panel 关联的 AccessibleContext。

继承的方法

此类继承自以下类的方法

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Panel 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtContainerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtContainerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtContainerDemo  awtContainerDemo = new AwtContainerDemo();          
      awtContainerDemo.showPanelDemo();
   }

   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);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showPanelDemo(){
      headerLabel.setText("Container in action: Panel");      

      Panel panel = new Panel();
      panel.setBackground(Color.magenta);
      panel.setLayout(new FlowLayout());        
      panel.add(msglabel);

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtContainerDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtContainerDemo

验证以下输出

AWT Panel

AWT Frame 类

简介

Frame是一个带边框和标题的顶级窗口。它使用 BorderLayout 作为默认布局管理器。

类声明

以下是java.awt.Frame类的声明

public class Frame
   extends Window
      implements MenuContainer

字段

以下是java.awt.Frame类的字段

  • static float BOTTOM_ALIGNMENT -- getAlignmentY 的易用性常量。

  • static int CROSSHAIR_CURSOR -- 已弃用。由 Cursor.CROSSHAIR_CURSOR 替换。

  • static int DEFAULT_CURSOR -- 已弃用。由 Cursor.DEFAULT_CURSOR 替换。

  • static int E_RESIZE_CURSOR -- 已弃用。由 Cursor.E_RESIZE_CURSOR 替换。

  • static int HAND_CURSOR -- 已弃用。由 Cursor.HAND_CURSOR 替换。

  • static int ICONIFIED -- 此状态位指示框架已最小化。

  • static int MAXIMIZED_BOTH -- 此状态位掩码指示框架已完全最大化(即水平和垂直方向)。

  • static int MAXIMIZED_HORIZ -- 此状态位指示框架在水平方向上最大化。

  • static int MAXIMIZED_VERT -- 此状态位指示框架在垂直方向上最大化。

  • static int MOVE_CURSOR -- 已弃用。由 Cursor.MOVE_CURSOR 替换。

  • static int N_RESIZE_CURSOR -- 已弃用。由 Cursor.N_RESIZE_CURSOR 替换。

  • static int NE_RESIZE_CURSOR -- 已弃用。由 Cursor.NE_RESIZE_CURSOR 替换。

  • static int NORMAL -- 框架处于“正常”状态。

  • static int NW_RESIZE_CURSOR -- 已弃用。由 Cursor.NW_RESIZE_CURSOR 替换。

  • static int S_RESIZE_CURSOR -- 已弃用。由 Cursor.S_RESIZE_CURSOR 替换。

  • static int SE_RESIZE_CURSOR -- 已弃用。由 Cursor.SE_RESIZE_CURSOR 替换。

  • static int SW_RESIZE_CURSOR -- 已弃用。由 Cursor.SW_RESIZE_CURSOR 替换。

  • static int TEXT_CURSOR -- 已弃用。由 Cursor.TEXT_CURSOR 替换。

  • static int W_RESIZE_CURSOR -- 已弃用。由 Cursor.W_RESIZE_CURSOR 替换。

  • static int WAIT_CURSOR -- 已弃用。由 Cursor.WAIT_CURSOR 替换。

类构造函数

序号构造函数和描述
1

Frame()

构造一个新的 Frame 实例,最初不可见。

2

Frame(GraphicsConfiguration gc)

使用指定的 GraphicsConfiguration 构造一个新的、最初不可见的 Frame。

3

Frame(String title)

使用指定的标题构造一个新的、最初不可见的 Frame 对象。

4

Frame(String title, GraphicsConfiguration gc)

使用指定的标题和 GraphicsConfiguration 构造一个新的、最初不可见的 Frame 对象。

类方法

序号方法和描述
1

void addNotify()

通过将其连接到本机屏幕资源,使此 Frame 可显示。

2

AccessibleContext getAccessibleContext()

获取与此 Frame 关联的 AccessibleContext。

3

int getCursorType()

已弃用。从 JDK 版本 1.1 开始,由 Component.getCursor() 替换。

4

int getExtendedState()

获取此框架的状态。

5

static Frame[] getFrames()

返回此应用程序创建的所有 Frame 的数组。

6

Image getIconImage()

返回要显示为此框架图标的图像。

7

Rectangle getMaximizedBounds()

获取此框架的最大化边界。

8

MenuBar getMenuBar()

获取此框架的菜单栏。

9

int getState()

获取此框架的状态(已过时)。

10

String getTitle()

获取框架的标题。

11

boolean isResizable()

指示此框架是否可由用户调整大小。

12

boolean isUndecorated()

指示此框架是否未装饰。

13

protected String paramString()

返回表示此 Frame 状态的字符串。

14

void remove(MenuComponent m)

从此框架中删除指定的菜单栏。

15

void removeNotify()

通过删除其与本机屏幕资源的连接,使此 Frame 无法显示。

16

void setCursor(int cursorType)

已弃用。从 JDK 版本 1.1 开始,由 Component.setCursor(Cursor) 替换。

17

void setExtendedState(int state)

设置此框架的状态。

18

void setIconImage(Image image)

设置要显示为此窗口图标的图像。

19

void setMaximizedBounds(Rectangle bounds)

设置此框架的最大化边界。

20

void setMenuBar(MenuBar mb)

将此框架的菜单栏设置为指定的菜单栏。

21

void setResizable(boolean resizable)

设置此框架是否可由用户调整大小。

22

void setState(int state)

设置此框架的状态(已过时)。

23

void setTitle(String title)

将此框架的标题设置为指定的字符串。

24

void setUndecorated(boolean undecorated)

禁用或启用此框架的装饰。

继承的方法

此类继承自以下类的方法

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Frame 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtContainerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtContainerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtContainerDemo  awtContainerDemo = new AwtContainerDemo();          
      awtContainerDemo.showFrameDemo();
   }

   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);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   
   private void showFrameDemo(){
      headerLabel.setText("Container in action: Frame");   

      final Frame frame = new Frame();
      frame.setSize(300, 300);
      frame.setLayout(new FlowLayout());       
      frame.add(msglabel);
      frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            frame.dispose();
         }        
      });    
      Button okButton = new Button("Open a Frame");

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("A Frame shown to the user.");
            frame.setVisible(true);
         }
      });
      controlPanel.add(okButton);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtContainerDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtContainerDemo

验证以下输出

AWT Frame

AWT 窗口类

简介

Window 类是一个没有边框和菜单栏的顶级窗口。它使用 BorderLayout 作为默认布局管理器。

类声明

以下是 java.awt.Window 类的声明

public class Window
   extends Container
      implements Accessible

类构造函数

序号构造函数和描述
1

Window(Frame owner)

使用指定的 Frame 作为其所有者构造一个新的、最初不可见的窗口。

2

Window(Window owner)

使用指定的 Window 作为其所有者构造一个新的、最初不可见的窗口。

3

Window(Window owner, GraphicsConfiguration gc)

使用指定的所有者 Window 和屏幕设备的 GraphicsConfiguration 构造一个新的、最初不可见的窗口。

类方法

序号方法和描述
1

void addNotify()

通过创建与其本机屏幕资源的连接,使此 Window 可显示。

2

void addPropertyChangeListener(PropertyChangeListener listener)

将 PropertyChangeListener 添加到监听器列表。

3

void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

为特定属性将 PropertyChangeListener 添加到监听器列表。

4

void addWindowFocusListener(WindowFocusListener l)

添加指定的窗口焦点侦听器以接收来自此窗口的窗口事件。

5

void addWindowListener(WindowListener l)

添加指定的窗口侦听器以接收来自此窗口的窗口事件。

6

void addWindowStateListener(WindowStateListener l)

添加指定的窗口状态侦听器以接收来自此窗口的窗口事件。

7

void applyResourceBundle(ResourceBundle rb)

已弃用。从 J2SE 1.4 开始,由 Component.applyComponentOrientation 替换。

8

void applyResourceBundle(String rbName)

已弃用。从 J2SE 1.4 开始,由 Component.applyComponentOrientation 替换。

9

void createBufferStrategy(int numBuffers)

为此组件上的多缓冲创建新的策略。

10

void createBufferStrategy(int numBuffers, BufferCapabilities caps)

为此组件上的多缓冲创建新的策略,并具有所需的缓冲功能。

11

void dispose()

释放此 Window、其子组件及其所有拥有的子代使用的所有本机屏幕资源。

12

AccessibleContext getAccessibleContext()

获取与此 Window 关联的 AccessibleContext。

13

BufferStrategy getBufferStrategy()

返回此组件使用的 BufferStrategy。

14

boolean getFocusableWindowState()

返回此 Window 是否可以成为聚焦的 Window,如果它满足 isFocusableWindow 中概述的其他要求。

15

Container getFocusCycleRootAncestor()

始终返回 null,因为 Window 没有祖先;它们表示 Component 层次结构的顶部。

16

Component getFocusOwner()

如果此 Window 已聚焦,则返回具有焦点的此 Window 的子组件;否则返回 null。

17

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

获取此 Window 的焦点遍历键。

18

GraphicsConfiguration getGraphicsConfiguration()

此方法返回此 Window 使用的 GraphicsConfiguration。

19

List<Image> getIconImages()

返回要显示为此窗口图标的图像序列。

20

InputContext getInputContext()

获取此窗口的输入上下文。

21

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 Window 上注册为 FooListeners 的所有对象的数组。

22

Locale getLocale()

获取与此窗口关联的 Locale 对象,如果已设置区域设置。

23

Dialog.ModalExclusionType getModalExclusionType()

返回此窗口的模态排除类型。

24

Component getMostRecentFocusOwner()

返回此 Window 的子组件,当此 Window 获得焦点时,该子组件将接收焦点。

25

Window[] getOwnedWindows()

返回一个数组,其中包含此窗口当前拥有的所有窗口。

26

Window getOwner()

返回此窗口的所有者。

27

static Window[] getOwnerlessWindows()

返回此应用程序创建的所有没有所有者的 Window 的数组。

28

Toolkit getToolkit()

返回此框架的工具包。

29

String getWarningString()

获取与此窗口一起显示的警告字符串。

30

WindowFocusListener[] getWindowFocusListeners()

返回在此窗口上注册的所有窗口焦点侦听器的数组。

31

WindowListener[] getWindowListeners()

返回在此窗口上注册的所有窗口侦听器的数组。

32

static Window[] getWindows()

返回此应用程序创建的所有 Window(已拥有和未拥有)的数组。

33

WindowStateListener[] getWindowStateListeners()

返回在此窗口上注册的所有窗口状态侦听器的数组。

34

void hide()

已过时。从 JDK 版本 1.5 开始,由 setVisible(boolean) 替换。

35

boolean isActive()

返回此 Window 是否处于活动状态。

36

boolean isAlwaysOnTop()

返回此窗口是否始终位于其他窗口之上。

37

boolean isAlwaysOnTopSupported()

返回此窗口是否支持始终位于顶部的模式。

38

boolean isFocusableWindow()

返回此 Window 是否可以成为聚焦的 Window,即此 Window 或其任何子组件是否可以成为焦点所有者。

39

boolean isFocusCycleRoot()

始终返回 true,因为所有 Window 必须是焦点遍历循环的根。

40

boolean isFocused()

返回此 Window 是否已聚焦。

41

boolean isLocationByPlatform()

如果此 Window 下次可见时将显示在本机窗口系统的默认位置,则返回 true。

42

boolean isShowing()

检查此 Window 是否显示在屏幕上。

43

void pack()

使此 Window 的大小适合其子组件的首选大小和布局。

44

void paint(Graphics g)

绘制容器。

45

boolean postEvent(Event e)

已弃用。从 JDK 版本 1.1 开始,由 dispatchEvent(AWTEvent) 替换。

46

protected void processEvent(AWTEvent e)

处理此窗口上的事件。

47

protected void processWindowEvent(WindowEvent e)

通过将事件分派到任何已注册的 WindowListener 对象,处理在此窗口上发生的窗口事件。

48

protected void processWindowFocusEvent(WindowEvent e)

通过将事件分派到任何已注册的 WindowFocusListener 对象,处理在此窗口上发生的窗口焦点事件。

49

protected void processWindowStateEvent(WindowEvent e)

通过将事件分派到任何已注册的 WindowStateListener 对象,处理在此窗口上发生的窗口状态事件。

50

void removeNotify()

通过移除其与本机屏幕资源的连接使此 Container 无法显示。

51

void removeWindowFocusListener(WindowFocusListener l)

删除指定的窗口焦点侦听器,以便它不再接收来自此窗口的窗口事件。

52

void removeWindowListener(WindowListener l)

删除指定的窗口侦听器,以便它不再接收来自此窗口的窗口事件。

53

void removeWindowStateListener(WindowStateListener l)

删除指定的窗口状态侦听器,以便它不再接收来自此窗口的窗口事件。

54

void reshape(int x, int y, int width, int height)

已弃用。从 JDK 版本 1.1 开始,由 setBounds(int, int, int, int) 替换。

55

void setAlwaysOnTop(boolean alwaysOnTop)

设置此窗口是否应始终位于其他窗口之上。

56

void setBounds(int x, int y, int width, int height)

移动并调整此组件的大小。

57

void setBounds(Rectangle r)

移动并调整此组件的大小,使其符合新的边界矩形 r。

58

void setCursor(Cursor cursor)

将光标图像设置为指定的光标。

59

void setFocusableWindowState(boolean focusableWindowState)

设置此 Window 是否可以成为聚焦的 Window,如果它满足 isFocusableWindow 中概述的其他要求。

60

void setFocusCycleRoot(boolean focusCycleRoot)

不执行任何操作,因为 Window 必须始终是焦点遍历循环的根。

61

void setIconImage(Image image)

设置要显示为此窗口图标的图像。

62

void setIconImages(List<? extends Image> icons)

设置要显示为此窗口图标的图像序列。

63

void setLocationByPlatform(boolean locationByPlatform)

设置此 Window 应显示在本机窗口系统的默认位置,还是在下次使 Window 可见时显示在当前位置(由 getLocation 返回)。

64

void setLocationRelativeTo(Component c)

设置窗口相对于指定组件的位置。

65

void setMinimumSize(Dimension minimumSize)

将此窗口的最小大小设置为常量值。

66

void setModalExclusionType(Dialog.ModalExclusionType exclusionType)

指定此窗口的模态排除类型。

67

void setSize(Dimension d)

调整此组件的大小,使其宽度为 d.width,高度为 d.height。

68

void setSize(int width, int height)

调整此组件的大小,使其宽度为 width,高度为 height。

69

void setVisible(boolean b)

根据参数 b 的值显示或隐藏此 Window。

70

void show()

已过时。从 JDK 版本 1.5 开始,由 setVisible(boolean) 替换。

71

void toBack()

如果此窗口可见,则将此窗口发送到后面,如果它是焦点或活动窗口,则可能会导致它失去焦点或激活。

72

void toFront()

如果此 Window 可见,则将此 Window 置于最前面,并可能使其成为聚焦的 Window。

继承的方法

此类继承自以下类的方法

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Window 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtContainerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtContainerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtContainerDemo  awtContainerDemo = new AwtContainerDemo();          
      awtContainerDemo.showFrameDemo();
   }

   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);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   
   private void showWindowDemo(){
      headerLabel.setText("Container in action: Window");   
      final MessageWindow window = 
         new MessageWindow(mainFrame,
         "Welcome to TutorialsPoint AWT Tutorial.");

      Button okButton = new Button("Open a Window");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            window.setVisible(true);
            statusLabel.setText("A Window shown to the user.");                
         }
      });
      controlPanel.add(okButton);
      mainFrame.setVisible(true);  
   }

   class MessageWindow extends Window{
      private String message; 

      public MessageWindow(Frame parent, String message) { 
         super(parent);               
         this.message = message; 
         setSize(300, 300);       
         setLocationRelativeTo(parent);
         setBackground(Color.gray);
      }

      public void paint(Graphics g) { 
         super.paint(g);
         g.drawRect(0,0,getSize().width - 1,getSize().height - 1); 
         g.drawString(message,50,150); 
      } 
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtContainerDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtContainerDemo

验证以下输出

AWT Window

AWT 菜单类

众所周知,每个顶级窗口都与一个菜单栏关联。此菜单栏包含可供最终用户使用的各种菜单选项。此外,每个选项都包含选项列表,称为下拉菜单。Menu 和 MenuItem 控件是 MenuComponent 类的子类。

菜单层次结构

AWT Menu Hiearchy

AWT MenuComponent 类

简介

MenuComponent 是一个抽象类,它是所有与菜单相关的组件的超类。

类声明

以下是 **java.awt.MenuComponent** 类的声明

public abstract class MenuComponent
   extends Object
      implements Serializable

类构造函数

序号构造函数和描述
1

MenuComponent()

创建一个 MenuComponent。

类方法

void dispatchEvent(AWTEvent e)
序号方法和描述
1

AccessibleContext getAccessibleContext()

获取与此 MenuComponent 关联的 AccessibleContext。

2

Font getFont()

获取此菜单组件使用的字体。

3

String getName()

获取菜单组件的名称。

4

MenuContainer getParent()

返回此菜单组件的父容器。

5

java.awt.peer.MenuComponentPeer getPeer()

已过时。从 JDK 版本 1.1 开始,程序不应直接操作对等体。

6

protected Object getTreeLock()

获取此组件的锁定对象(拥有线程同步监视器的对象),用于 AWT 组件树和布局操作。

7

protected String paramString()

返回表示此 MenuComponent 状态的字符串。

8

boolean postEvent(Event evt)

已过时。从 JDK 版本 1.1 开始,由 dispatchEvent 替换。

9

protected void processEvent(AWTEvent e)

处理在此菜单组件上发生的事件。

10

void removeNotify()

删除菜单组件的对等体。

11

void setFont(Font f)

将此菜单组件要使用的字体设置为指定的字体。

12

void setName(String name)

将组件的名称设置为指定的字符串。

13

String toString()

返回此菜单组件的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

AWT MenuBar 类

简介

MenuBar 类提供绑定到框架的菜单栏,并且是特定于平台的。

类声明

以下是 **java.awt.MenuBar** 类的声明

public class MenuBar
   extends MenuComponent
      implements MenuContainer, Accessible

类构造函数

序号构造函数和描述
1

MenuBar()

创建一个新的菜单栏。

类方法

序号方法和描述
1

void dispatchEvent(AWTEvent e)

2

Menu add(Menu m)

将指定的菜单添加到菜单栏。

3

void addNotify()

创建菜单栏的对等体。

4

int countMenus()

已过时。从 JDK 版本 1.1 开始,由 getMenuCount() 替换。

5

void deleteShortcut(MenuShortcut s)

删除指定的菜单快捷方式。

6

AccessibleContext getAccessibleContext()

获取与此 MenuBar 关联的 AccessibleContext。

7

Menu getHelpMenu()

获取菜单栏上的帮助菜单。

8

Menu getMenu(int i)

获取指定的菜单。

9

int getMenuCount()

获取菜单栏上的菜单数量。

10

MenuItem getShortcutMenuItem(MenuShortcut s)

获取与指定的 MenuShortcut 对象关联的 MenuItem 实例,如果此菜单栏管理的菜单项中没有与指定的菜单快捷方式关联的,则返回 null。

11

void remove(int index)

从此菜单栏中删除位于指定索引处的菜单。

12

void remove(MenuComponent m)

从此菜单栏中删除指定的菜单组件。

13

void removeNotify()

删除菜单栏的对等体。

14

void setHelpMenu(Menu m)

将指定的菜单设置为此菜单栏的帮助菜单。

15

Enumeration shortcuts()

获取此菜单栏管理的所有菜单快捷方式的枚举。

继承的方法

此类继承自以下类的方法

  • java.awt.MenuComponent

  • java.lang.Object

MenuBar 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   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 showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTMenuDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTMenuDemo

验证以下输出

AWT MenuBar

AWT MenuItem 类

简介

MenuBar 类表示菜单中的实际项。菜单中的所有项都应派生自 MenuItem 类或其子类之一。默认情况下,它包含一个简单的带标签的菜单项。

类声明

以下是 **java.awt.MenuItem** 类的声明

public class MenuItem
   extends MenuComponent
      implements Accessible

类构造函数

序号构造函数和描述
1

MenuItem()

构造一个新的 MenuItem,带有空标签和无键盘快捷键。

2

MenuItem(String label)

构造一个新的 MenuItem,带有指定的标签和无键盘快捷键。

3

MenuItem(String label, MenuShortcut s)

创建一个具有关联键盘快捷键的菜单项。

类方法

序号方法和描述
1

void addActionListener(ActionListener l)

添加指定的动作监听器以接收来自此菜单项的动作事件。

2

void addNotify()

创建菜单项的对等体。

3

void deleteShortcut()

删除与此菜单项关联的任何 MenuShortcut 对象。

4

void disable()

已过时。从 JDK 1.1 版本开始,已被 setEnabled(boolean) 方法取代。

5

protected void disableEvents(long eventsToDisable)

禁用对此菜单项的事件传递,用于由指定的事件掩码参数定义的事件。

6

void enable()

已过时。从 JDK 1.1 版本开始,已被 setEnabled(boolean) 方法取代。

7

void enable(boolean b)

已过时。从 JDK 1.1 版本开始,已被 setEnabled(boolean) 方法取代。

8

protected void enableEvents(long eventsToEnable)

启用对此菜单项的事件传递,用于由指定的事件掩码参数定义的事件。

9

AccessibleContext getAccessibleContext()

获取与此 MenuItem 关联的 AccessibleContext。

10

String getActionCommand()

获取由此菜单项触发的动作事件的命令名称。

11

ActionListener[] getActionListeners()

返回在此菜单项上注册的所有动作监听器的数组。

12

String getLabel()

获取此菜单项的标签。

13

EventListener[] getListeners(Class listenerType)

返回当前在此 MenuItem 上注册为 FooListeners 的所有对象的数组。

14

MenuShortcut getShortcut()

获取与此菜单项关联的 MenuShortcut 对象。

15

boolean isEnabled()

检查此菜单项是否已启用。

16

String paramString()

返回表示此 MenuItem 状态的字符串。

17

protected void processActionEvent(ActionEvent e)

通过将它们分派到任何已注册的 ActionListener 对象来处理在此菜单项上发生的动作事件。

18

protected void processEvent(AWTEvent e)

处理此菜单项上的事件。

19

void removeActionListener(ActionListener l)

删除指定的动作监听器,以便它不再接收来自此菜单项的动作事件。

20

void setActionCommand(String command)

设置由此菜单项触发的动作事件的命令名称。

21

void setEnabled(boolean b)

设置此菜单项是否可以选择。

22

void setLabel(String label)

将此菜单项的标签设置为指定的标签。

23

void setShortcut(MenuShortcut s)

设置与此菜单项关联的 MenuShortcut 对象。

继承的方法

此类继承自以下类的方法

  • java.awt.MenuComponent

  • java.lang.Object

MenuItem 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   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 showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTMenuDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTMenuDemo

验证以下输出。(单击“文件”菜单。选择任何菜单项。)

AWT MenuItem

AWT Menu 类

简介

Menu 类表示从菜单栏部署的下拉菜单组件。

类声明

以下是 **java.awt.Menu** 类的声明

public class Menu
   extends MenuItem
      implements MenuContainer, Accessible

类构造函数

序号构造函数和描述
1

Menu()

构造一个新的菜单,带有空标签。

2

Menu(String label)

构造一个新的菜单,带有指定的标签。

3

Menu(String label, boolean tearOff)

构造一个新的菜单,带有指定的标签,指示菜单是否可以撕裂。

类方法

序号方法和描述
1

MenuItem add(MenuItem mi)

将指定的菜单项添加到此菜单。

2

void add(String label)

向此菜单添加一个具有指定标签的项。

3

void addNotify()

创建菜单的对等体。

4

void addSeparator()

在当前位置向菜单添加分隔线或连字符。

5

int countItems()

已弃用。从 JDK 版本 1.1 开始,由 getItemCount() 替换。

6

AccessibleContext getAccessibleContext()

获取与此 Menu 关联的 AccessibleContext。

7

MenuItem getItem(int index)

获取此菜单中指定索引处的项。

8

int getItemCount()

获取此菜单中的项数。

9

void insert(MenuItem menuitem, int index)

在指定位置将菜单项插入此菜单。

10

void insert(String label, int index)

在指定位置将具有指定标签的菜单项插入此菜单。

11

void insertSeparator(int index)

在指定位置插入分隔符。

12

boolean isTearOff()

指示此菜单是否为撕裂菜单。

13

String paramString()

返回表示此 Menu 状态的字符串。

14

void remove(int index)

从此菜单中删除指定索引处的菜单项。

15

void remove(MenuComponent item)

从此菜单中删除指定的菜单项。

16

void removeAll()

从此菜单中删除所有项。

17

void removeNotify()

删除菜单的对等体。

继承的方法

此类继承自以下类的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

Menu 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   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 showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTMenuDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTMenuDemo

验证以下输出。(单击“文件”菜单。)

AWT Menu

AWT CheckboxMenuItem 类

简介

CheckboxMenuItem 类表示可以包含在菜单中的复选框。选择菜单中的复选框会将控件的状态从 **on** 更改为 **off** 或从 **off** 更改为 **on**。

类声明

以下是 **java.awt.CheckboxMenuItem** 类的声明

public class CheckboxMenuItem
   extends MenuItem
      implements ItemSelectable, Accessible

类构造函数

序号构造函数和描述
1

CheckboxMenuItem()

创建一个带有空标签的复选框菜单项。

2

CheckboxMenuItem(String label)

创建一个带有指定标签的复选框菜单项。

3

CheckboxMenuItem(String label, boolean state)

创建一个带有指定标签和状态的复选框菜单项。

类方法

序号方法和描述
1

void addItemListener(ItemListener l)

添加指定的项目监听器以接收来自此复选框菜单项的项目事件。

2

void addNotify()

创建复选框项的对等体。

3

AccessibleContext getAccessibleContext()

获取与此 CheckboxMenuItem 关联的 AccessibleContext。

4

ItemListener[] getItemListeners()

返回在此复选框菜单项上注册的所有项目监听器的数组。

5

<T extends EventListener> T[] getListeners(Class<T> listenerType)

返回当前在此 CheckboxMenuItem 上注册为 FooListeners 的所有对象的数组。

6

Object[] getSelectedObjects()

返回一个包含复选框菜单项标签的数组(长度为 1),如果复选框未选中,则返回 null。

7

boolean getState()

确定此复选框菜单项的状态是“on”还是“off”。

8

String paramString()

返回表示此 CheckBoxMenuItem 状态的字符串。

9

protected void processEvent(AWTEvent e)

处理此复选框菜单项上的事件。

10

protected void processItemEvent(ItemEvent e)

通过将它们分派到任何已注册的 ItemListener 对象来处理在此复选框菜单项上发生的项目事件。

11

void removeItemListener(ItemListener l)

删除指定的项目监听器,以便它不再接收来自此复选框菜单项的项目事件。

12

void setState(boolean b)

将此复选框菜单项设置为指定的状态。

继承的方法

此类继承自以下类的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

CheckboxMenuItem 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   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 showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTMenuDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTMenuDemo

验证以下输出。(单击“文件”菜单。取消选择“显示关于”菜单项。)

AWT CheckboxMenuItem

AWT PopupMenu 类

简介

弹出菜单表示一个菜单,可以在组件内的指定位置动态弹出。

类声明

以下是 **java.awt.PopupMenu** 类的声明

public class CheckboxMenuItem
   extends MenuItem
      implements ItemSelectable, Accessible

类构造函数

序号构造函数和描述
1

PopupMenu()

创建一个新的弹出菜单,带有空名称。

2

PopupMenu(String label)

创建一个新的弹出菜单,带有指定的名称。

类方法

序号方法和描述
1

void addNotify()

创建弹出菜单的对等体。

2

AccessibleContext getAccessibleContext()

获取与此 PopupMenu 关联的 AccessibleContext。

3

MenuContainer getParent()

返回此菜单组件的父容器。

4

void show(Component origin, int x, int y)

相对于源组件在 x、y 位置显示弹出菜单。

继承的方法

此类继承自以下类的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

PopupMenu 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showPopupMenuDemo();
   }

   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 showPopupMenuDemo(){
      final PopupMenu editMenu = new PopupMenu("Edit"); 

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");

      MenuItemListener menuItemListener = new MenuItemListener();

      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);   
      
      controlPanel.addMouseListener(new MouseAdapter() {
         public void mouseClicked(MouseEvent e) {            
               editMenu.show(controlPanel, e.getX(), e.getY());
         }               
      });
      controlPanel.add(editMenu); 

      mainFrame.setVisible(true);
   }
	
   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTMenuDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTMenuDemo

验证以下输出。(单击屏幕中间。)

AWT PopupMenu

AWT 图形类

图形控件允许应用程序在组件或图像上绘制。

AWT Graphics 类

简介

Graphics 类是所有图形上下文的抽象超类,它允许应用程序绘制到可以在各种设备上实现的组件上,或者绘制到屏幕外图像上。

Graphics 对象封装了 Java 支持的基本渲染操作所需的所有状态信息。状态信息包括以下属性。

  • 要绘制的 Component 对象。

  • 用于渲染和裁剪坐标的平移原点。

  • 当前剪辑。

  • 当前颜色。

  • 当前字体。

  • 当前逻辑像素操作函数。

  • 当前 XOR 交替颜色

类声明

以下是 **java.awt.Graphics** 类的声明

public abstract class Graphics
   extends Object

类构造函数

序号构造函数和描述
1

Graphics() ()

构造一个新的 Graphics 对象。

类方法

序号方法和描述
1

abstract void clearRect(int x, int y, int width, int height)

通过使用当前绘图面的背景色填充它来清除指定的矩形。

2

abstract void clipRect(int x, int y, int width, int height)

将当前剪辑与指定的矩形相交。

3

abstract void copyArea(int x, int y, int width, int height, int dx, int dy)

将组件的一个区域复制到由 dx 和 dy 指定的距离处。

4

abstract Graphics create()

创建一个新的 Graphics 对象,它是此 Graphics 对象的副本。

5

Graphics create(int x, int y, int width, int height)

基于此 Graphics 对象创建一个新的 Graphics 对象,但具有新的平移和剪切区域。

6

abstract void dispose()

释放此图形上下文并释放其正在使用的任何系统资源。

7

void draw3DRect(int x, int y, int width, int height, boolean raised)

绘制指定矩形的 3D 高亮轮廓。

8

abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

绘制覆盖指定矩形的圆形或椭圆形弧的轮廓。

9

void drawBytes(byte[] data, int offset, int length, int x, int y)

使用此图形上下文当前的字体和颜色绘制由指定字节数组给出的文本。

10

void drawChars(char[] data, int offset, int length, int x, int y)

使用此图形上下文当前的字体和颜色绘制由指定字符数组给出的文本。

11

abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)

绘制指定图像中当前可用的尽可能多的内容。

12

abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)

绘制指定图像中当前可用的尽可能多的内容。

13

abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)

绘制指定图像中已缩放以适合指定矩形内的尽可能多的内容。

14

abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)

绘制指定图像中已缩放以适合指定矩形内的尽可能多的内容。

15

abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)

绘制指定图像的指定区域中当前可用的尽可能多的内容,并将其动态缩放以适合目标可绘制表面的指定区域。

16

abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)

绘制指定图像的指定区域中当前可用的尽可能多的内容,并将其动态缩放以适合目标可绘制表面的指定区域。

17

abstract void drawLine(int x1, int y1, int x2, int y2)

使用当前颜色在此图形上下文坐标系中绘制从点 (x1, y1) 到点 (x2, y2) 的线。

18

abstract void drawOval(int x, int y, int width, int height)

绘制椭圆的轮廓。

19

abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)

绘制由 x 和 y 坐标数组定义的封闭多边形。

20

void drawPolygon(Polygon p)

绘制由指定 Polygon 对象定义的多边形的轮廓。

21

abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)

绘制由 x 和 y 坐标数组定义的一系列连接线。

22

void drawRect(int x, int y, int width, int height)

绘制指定矩形的轮廓。

23

abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

使用此图形上下文当前的颜色绘制带圆角的矩形轮廓。

24

abstract void drawString(AttributedCharacterIterator iterator, int x, int y)

呈现指定迭代器的文本,并根据 TextAttribute 类的规范应用其属性。

25

abstract void drawString(String str, int x, int y)

使用此图形上下文当前的字体和颜色绘制指定字符串给出的文本。

26

void fill3DRect(int x, int y, int width, int height, boolean raised)

使用当前颜色填充 3D 高亮矩形。

27

abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

填充覆盖指定矩形的圆形或椭圆形弧。

28

abstract void fillOval(int x, int y, int width, int height)

使用当前颜色填充由指定矩形限定的椭圆。

29

abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)

填充由 x 和 y 坐标数组定义的封闭多边形。

30

void fillPolygon(Polygon p)

使用图形上下文当前的颜色填充由指定 Polygon 对象定义的多边形。

31

abstract void fillRect(int x, int y, int width, int height)

填充指定的矩形。

32

abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

使用当前颜色填充指定的圆角矩形。

33

void finalize()

在不再引用此图形上下文时释放它。

34

abstract Shape getClip()

获取当前剪切区域。

35

abstract Rectangle getClipBounds()

返回当前剪切区域的边界矩形。

36

Rectangle getClipBounds(Rectangle r)

返回当前剪切区域的边界矩形。

37

Rectangle getClipRect()

已弃用。从 JDK 版本 1.1 开始,由 getClipBounds() 替换。

38

abstract Color getColor()

获取此图形上下文的当前颜色。

39

abstract Font getFont()

获取当前字体。

40

FontMetrics getFontMetrics()

获取当前字体的字体度量。

41

abstract FontMetrics getFontMetrics(Font f)

获取指定字体的字体度量。

42

boolean hitClip(int x, int y, int width, int height)

如果指定的矩形区域可能与当前剪切区域相交,则返回 true。

43

abstract void setClip(int x, int y, int width, int height)

将当前剪切设置为由给定坐标指定的矩形。

44

abstract void setClip(Shape clip)

将当前剪切区域设置为任意剪切形状。

45

abstract void setColor(Color c)

将此图形上下文的当前颜色设置为指定颜色。

46

abstract void setFont(Font font)

将此图形上下文的字体设置为指定的字体。

47

abstract void setPaintMode()

将此图形上下文的绘制模式设置为用此图形上下文的当前颜色覆盖目标。

48

abstract void setXORMode(Color c1)

将此图形上下文的绘制模式设置为在图形上下文的当前颜色和新的指定颜色之间交替。

49

String toString()

返回一个表示此 Graphics 对象值的 String 对象。

50

abstract void translate(int x, int y)

将图形上下文的原点平移到当前坐标系中的点 (x, y)。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Graphics 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      g.setColor(Color.GRAY);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 150);      
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Graphics

AWT Graphics2D 类

简介

Graphics2D 类扩展了 Graphics 类,以提供对几何图形、坐标转换、颜色管理和文本布局的更精细的控制。

类声明

以下是 **java.awt.Graphics2D** 类的声明

public abstract class Graphics2D
   extends Graphics

类构造函数

序号构造函数和描述
1

Graphics2D()

构造一个新的 Graphics2D 对象。

类方法

序号方法和描述
1

abstract void addRenderingHints(Map<?,?> hints)

设置任意数量的渲染算法首选项的值。

2

abstract void clip(Shape s)

将当前剪切与指定 Shape 的内部相交,并将剪切设置为生成的交集。

3

abstract void draw(Shape s)

使用当前 Graphics2D 上下文的设置描绘 Shape 的轮廓。

4

void draw3DRect(int x, int y, int width, int height, boolean raised)

绘制指定矩形的 3D 高亮轮廓。

5

abstract void drawGlyphVector(GlyphVector g, float x, float y)

使用 Graphics2D 上下文的渲染属性呈现指定 GlyphVector 的文本。

6

abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)

呈现一个使用 BufferedImageOp 过滤的 BufferedImage。

7

abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)

呈现图像,在绘制之前应用从图像空间到用户空间的转换。

8

abstract void drawRenderableImage(RenderableImage img, AffineTransform xform)

呈现一个 RenderableImage,在绘制之前应用从图像空间到用户空间的转换。

9

abstract void drawRenderedImage(RenderedImage img, AffineTransform xform)

呈现一个 RenderedImage,在绘制之前应用从图像空间到用户空间的转换。

10

abstract void drawString(AttributedCharacterIterator iterator, float x, float y)

呈现指定迭代器的文本,并根据 TextAttribute 类的规范应用其属性。

11

abstract void drawString(AttributedCharacterIterator iterator, int x, int y)

呈现指定迭代器的文本,并根据 TextAttribute 类的规范应用其属性。

12

abstract void drawString(String str, float x, float y)

使用 Graphics2D 上下文中当前的文本属性状态呈现指定 String 指定的文本

13

abstract void drawString(String str, int x, int y)

使用 Graphics2D 上下文中当前的文本属性状态呈现指定 String 的文本。

14

abstract void fill(Shape s)

使用 Graphics2D 上下文的设置填充 Shape 的内部。

15

void fill3DRect(int x, int y, int width, int height, boolean raised)

使用当前颜色填充 3D 高亮矩形。

16

abstract Color getBackground()

返回用于清除区域的背景颜色。

17

abstract Composite getComposite()

返回 Graphics2D 上下文中当前的 Composite。

18

abstract GraphicsConfiguration getDeviceConfiguration()

返回与此 Graphics2D 关联的设备配置。

19

abstract FontRenderContext getFontRenderContext()

获取此 Graphics2D 上下文中 Font 的渲染上下文。

20

abstract Paint getPaint()

返回 Graphics2D 上下文的当前 Paint。

21

abstract Object getRenderingHint(RenderingHints.Key hintKey)

返回渲染算法的单个首选项的值。

22

abstract RenderingHints getRenderingHints()

获取渲染算法的首选项。

23

abstract Stroke getStroke()

返回 Graphics2D 上下文中当前的 Stroke。

24

abstract AffineTransform getTransform()

返回 Graphics2D 上下文中当前 Transform 的副本。

25

abstract boolean hit(Rectangle rect, Shape s, boolean onStroke)

检查指定的 Shape 是否与指定的 Rectangle(位于设备空间中)相交。

26

abstract void rotate(double theta)

将当前 Graphics2D Transform 与旋转转换连接。

27

abstract void rotate(double theta, double x, double y)

将当前 Graphics2D Transform 与平移旋转转换连接。

28

abstract void scale(double sx, double sy)

将当前 Graphics2D Transform 与缩放转换连接。随后的渲染将根据相对于先前缩放的指定缩放因子进行调整大小。

29

abstract void setBackground(Color color)

设置 Graphics2D 上下文的背景颜色。

30

abstract void setComposite(Composite comp)

设置 Graphics2D 上下文的 Composite。

31

abstract void setPaint(Paint paint)

设置 Graphics2D 上下文的 Paint 属性。

32

abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)

设置渲染算法的单个首选项的值。

33

abstract void setRenderingHints(Map<?,?> hints)

使用指定的提示替换所有渲染算法的偏好值。

34

abstract void setStroke(Stroke s)

设置 Graphics2D 上下文的 Stroke。

35

abstract void setTransform(AffineTransform Tx)

覆盖 Graphics2D 上下文中的 Transform。

36

abstract void shear(double shx, double shy)

将当前 Graphics2D Transform 与剪切变换连接。

37

abstract void transform(AffineTransform Tx)

根据“最后指定,首先应用”的规则,将 AffineTransform 对象与 Graphics2D 中的 Transform 组合。

38

abstract void translate(double tx, double ty)

将当前 Graphics2D Transform 与平移变换连接。

39

abstract void translate(int x, int y)

将 Graphics2D 上下文的原点平移到当前坐标系中的 (x, y) 点。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Graphics2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
         RenderingHints.VALUE_ANTIALIAS_ON);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Graphics2D

AWT Arc2D 类

简介

Arc2D 类是所有存储由框架矩形、起始角、角度范围(弧长)和闭合类型(OPEN、CHORD 或 PIE)定义的二维弧的对象的超类。

类声明

以下是 **java.awt.Arc2D** 类的声明

public abstract class Arc2D
   extends RectangularShape

字段

以下是 **java.awt.geom.Arc2D** 类的字段

  • **static int CHORD** -- 用于通过绘制从弧段开始到弧段结束的直线段来闭合弧的闭合类型。

  • **static int OPEN** -- 用于没有连接弧段两端的路径段的开放弧的闭合类型。

  • **static int PIE** -- 用于通过绘制从弧段开始到完整椭圆中心的直线段,以及从该点到弧段结束的直线段来闭合弧的闭合类型。

类构造函数

序号构造函数和描述
1

protected Arc2D(int type)

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

boolean contains(double x, double y)

确定指定点是否在弧的边界内。

2

boolean contains(double x, double y, double w, double h)

确定弧的内部是否完全包含指定的矩形。

3

boolean contains(Rectangle2D r)

确定弧的内部是否完全包含指定的矩形。

4

boolean containsAngle(double angle)

确定指定角度是否在弧的角度范围内。

5

boolean equals(Object obj)

确定指定的 Object 是否等于此 Arc2D。

6

abstract double getAngleExtent()

返回弧的角度范围。

7

abstract double getAngleStart()

返回弧的起始角。

8

int getArcType()

返回弧的弧闭合类型:OPEN、CHORD 或 PIE。

9

Rectangle2D getBounds2D()

返回弧的高精度框架矩形。

10

Point2D getEndPoint()

返回弧的结束点。

11

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义弧的边界。

12

Point2D getStartPoint()

返回弧的起始点。

13

int hashCode()

返回此 Arc2D 的哈希码。

14

boolean intersects(double x, double y, double w, double h)

确定弧的内部是否与指定矩形的内部相交。

15

protected abstract Rectangle2D makeBounds(double x, double y, double w, double h)

构造一个适当精度的 Rectangle2D,以容纳计算为该弧的框架矩形的参数。

16

abstract void setAngleExtent(double angExt)

将此弧的角度范围设置为指定双精度值。

17

void setAngles(double x1, double y1, double x2, double y2)

使用两组坐标设置此弧的起始角和角度范围。

18

void setAngles(Point2D p1, Point2D p2)

使用两个点设置此弧的起始角和角度范围。

19

abstract void setAngleStart(double angSt)

将此弧的起始角设置为指定双精度值。

20

void setAngleStart(Point2D p)

将此弧的起始角设置为指定点相对于此弧中心的定义角度。

21

void setArc(Arc2D a)

将此弧设置为与指定的弧相同。

22

abstract void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure)

将此弧的位置、大小、角度范围和闭合类型设置为指定的双精度值。

23

void setArc(Point2D loc, Dimension2D size, double angSt, double angExt, int closure)

将此弧的位置、大小、角度范围和闭合类型设置为指定的值。

24

void setArc(Rectangle2D rect, double angSt, double angExt, int closure)

将此弧的位置、大小、角度范围和闭合类型设置为指定的值。

25

void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure)

将此弧的位置、边界、角度范围和闭合类型设置为指定的值。

26

void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius)

将此弧的位置、边界和角度范围设置为指定的值。

27

void setArcType(int type)

将此弧的闭合类型设置为指定的值:OPEN、CHORD 或 PIE。

28

void setFrame(double x, double y, double w, double h)

将此 Shape 的框架矩形的位置和大小设置为指定的矩形值。

继承的方法

此类继承自以下类的方法

  • java.awt.geom.RectangularShape

  • java.lang.Object

Arc2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Arc2D.Float arc = new Arc2D.Float(Arc2D.PIE);
      arc.setFrame(70, 200, 150, 150);
      arc.setAngleStart(0);
      arc.setAngleExtent(145);
      Graphics2D g2 = (Graphics2D) g; 
      g2.setColor(Color.gray);
      g2.draw(arc);
      g2.setColor(Color.red);
      g2.fill(arc);
      g2.setColor(Color.black);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Arc2D.PIE", 100, 120); 
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtGraphicsDemo

验证以下输出

AWT Arc2D

AWT CubicCurve2D 类

简介

CubicCurve2D 类在 (x,y) 坐标空间中指定了一个三次参数曲线段。

类声明

以下是 **java.awt.geom.CubicCurve2D** 类的声明

public abstract class CubicCurve2D
   extends Object
      implements Shape, Cloneable

类构造函数

序号构造函数和描述
1

protected CubicCurve2D()

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

Object clone()

创建一个与该对象相同类的新的对象。

2

boolean contains(double x, double y)

测试指定的坐标是否在 Shape 的边界内。

3

boolean contains(double x, double y, double w, double h)

测试 Shape 的内部是否完全包含指定的矩形区域。

4

boolean contains(Point2D p)

测试指定的 Point2D 是否在 Shape 的边界内。

5

boolean contains(Rectangle2D r)

测试 Shape 的内部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一个完全包含 Shape 的整数 Rectangle。

7

abstract Point2D getCtrlP1()

返回第一个控制点。

8

abstract Point2D getCtrlP2()

返回第二个控制点。

9

abstract double getCtrlX1()

以双精度返回第一个控制点的 X 坐标。

10

abstract double getCtrlX2()

以双精度返回第二个控制点的 X 坐标。

11

abstract double getCtrlY1()

以双精度返回第一个控制点的 Y 坐标。

12

abstract double getCtrlY2()

以双精度返回第二个控制点的 Y 坐标。

13

double getFlatness()

返回此曲线的平坦度。

14

static double getFlatness(double[] coords, int offset)

返回由指定索引处的指定数组中存储的控制点指定的立方曲线的平坦度。

15

static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

返回由指定的控制点指定的立方曲线的平坦度。

16

double getFlatnessSq()

返回此曲线的平坦度的平方。

17

static double getFlatnessSq(double[] coords, int offset)

返回由指定索引处的指定数组中存储的控制点指定的立方曲线的平坦度的平方。

18

static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

返回由指定的控制点指定的立方曲线的平坦度的平方。

19

abstract Point2D getP1()

返回起始点。

20

abstract Point2D getP2()

返回结束点。

21

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义形状的边界。

22

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一个迭代对象,该对象定义扁平化形状的边界。

23

abstract double getX1()

以双精度返回起始点的 X 坐标。

24

abstract double getX2()

以双精度返回结束点的 X 坐标。

25

abstract double getY1()

以双精度返回起始点的 Y 坐标。

26

abstract double getY2()

以双精度返回结束点的 Y 坐标。

27

boolean intersects(double x, double y, double w, double h)

测试 Shape 的内部是否与指定矩形区域的内部相交。

28

boolean intersects(Rectangle2D r)

测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。

29

void setCurve(CubicCurve2D c)

将此曲线的端点和控制点的位置设置为与指定的 CubicCurve2D 中的相同。

30

void setCurve(double[] coords, int offset)

将此曲线的端点和控制点的位置设置为指定数组中指定偏移量处的双精度坐标。

31

abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

将此曲线的端点和控制点的位置设置为指定的双精度坐标。

32

void setCurve(Point2D[] pts, int offset)

将此曲线的端点和控制点的位置设置为指定数组中指定偏移量处的 Point2D 对象的坐标。

33

void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)

将此曲线的端点和控制点的位置设置为指定的 Point2D 坐标。

34

static int solveCubic(double[] eqn)

求解系数在 eqn 数组中的三次方程,并将非复数根放回同一数组中,返回根的数量。

35

static int solveCubic(double[] eqn, double[] res)

求解系数在 eqn 数组中的三次方程,并将非复数根放入 res 数组中,返回根的数量。

36

void subdivide(CubicCurve2D left, CubicCurve2D right)

细分此立方曲线并将生成的两个细分曲线存储到 left 和 right 曲线参数中。

37

static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)

细分由 src 参数指定的立方曲线并将生成的两个细分曲线存储到 left 和 right 曲线参数中。

38

static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)

将存储在 src 数组中从 srcoff 到 (srcoff + 7) 索引处的坐标指定的立方曲线细分,并将生成的两个细分曲线存储到两个结果数组中的对应索引处。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

CubicCurve2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      CubicCurve2D shape = new CubicCurve2D.Float();
      shape.setCurve(250F,250F,20F,90F,140F,100F,350F,330F);       
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("CubicCurve2D.Curve", 100, 120);
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT CubicCurve2D

AWT Ellipse2D 类

简介

Ellipse2D 类表示由一个外接矩形定义的椭圆。

类声明

以下是 java.awt.geom.Ellipse2D 类的声明

public abstract class Ellipse2D
   extends RectangularShape

类构造函数

序号构造函数和描述
1

protected Ellipse2D()

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

boolean contains(double x, double y)

测试指定的坐标是否在 Shape 的边界内。

2

boolean contains(double x, double y, double w, double h)

测试 Shape 的内部是否完全包含指定的矩形区域。

3

boolean equals(Object obj)

确定指定的 Object 是否等于此 Ellipse2D。

4

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义此 Ellipse2D 的边界。

5

int hashCode()

返回此 Ellipse2D 的哈希码。

6

boolean intersects(double x, double y, double w, double h)

测试 Shape 的内部是否与指定矩形区域的内部相交。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Ellipse2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Ellipse2D shape = new Ellipse2D.Float();
      shape.setFrame(100, 150, 200,100);
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Ellipse2D.Oval", 100, 120); 
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Ellipse2D

AWT Rectangle2D 类

简介

Rectangle2D 类表示由位置 (x,y) 和尺寸 (w x h) 定义的矩形。

类声明

以下是 java.awt.geom.Rectangle2D 类的声明

public abstract class Rectangle2D
   extends RectangularShape

字段

以下是 **java.awt.geom.Arc2D** 类的字段

  • static int OUT_BOTTOM -- 指示点位于此 Rectangle2D 下方的位掩码。

  • static int OUT_LEFT -- 指示点位于此 Rectangle2D 左侧的位掩码。

  • static int OUT_RIGHT -- 指示点位于此 Rectangle2D 右侧的位掩码。

  • static int OUT_TOP -- 指示点位于此 Rectangle2D 上方的位掩码。

类构造函数

序号构造函数和描述
1

protected Rectangle2D()

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

void add(double newx, double newy)

将由双精度参数 newx 和 newy 指定的点添加到此 Rectangle2D。

2

void add(Point2D pt)

将 Point2D 对象 pt 添加到此 Rectangle2D。

3

void add(Rectangle2D r)

将 Rectangle2D 对象添加到此 Rectangle2D。

4

boolean contains(double x, double y)

测试指定的坐标是否在 Shape 的边界内。

5

boolean contains(double x, double y, double w, double h)

测试 Shape 的内部是否完全包含指定的矩形区域。

6

abstract Rectangle2D createIntersection(Rectangle2D r)

返回一个新的 Rectangle2D 对象,该对象表示此 Rectangle2D 与指定的 Rectangle2D 的交集。

7

abstract Rectangle2D createUnion(Rectangle2D r)

返回一个新的 Rectangle2D 对象,该对象表示此 Rectangle2D 与指定的 Rectangle2D 的并集。

8

boolean equals(Object obj)

确定指定的 Object 是否等于此 Rectangle2D。

9

Rectangle2D getBounds2D()

返回 Shape 的高精度且更准确的边界框,而不是 getBounds 方法。

10

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义此 Rectangle2D 的边界。

11

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一个迭代对象,该对象定义扁平化 Rectangle2D 的边界。

12

int hashCode()

返回此 Rectangle2D 的哈希码。

13

static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)

将指定的两个源 Rectangle2D 对象相交,并将结果放入指定的目标 Rectangle2D 对象中。

14

boolean intersects(double x, double y, double w, double h)

测试 Shape 的内部是否与指定矩形区域的内部相交。

15

boolean intersectsLine(double x1, double y1, double x2, double y2)

测试指定的线段是否与此 Rectangle2D 的内部相交。

16

boolean intersectsLine(Line2D l)

测试指定的线段是否与此 Rectangle2D 的内部相交。

17

abstract int outcode(double x, double y)

确定指定的坐标相对于此 Rectangle2D 的位置。

18

int outcode(Point2D p)

确定指定的 Point2D 相对于此 Rectangle2D 的位置。

19

void setFrame(double x, double y, double w, double h)

将此 Rectangle2D 的外部边界的定位和大小设置为指定的矩形值。

20

abstract void setRect(double x, double y, double w, double h)

将此 Rectangle2D 的位置和大小设置为指定的双精度值。

21

void setRect(Rectangle2D r)

将此 Rectangle2D 设置为与指定的 Rectangle2D 相同。

22

static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)

将两个源 Rectangle2D 对象合并,并将结果放入指定的目标 Rectangle2D 对象中。

继承的方法

此类继承自以下类的方法

  • java.awt.geom.RectangularShape

  • java.lang.Object

Ellipse2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Rectangle2D shape = new Rectangle2D.Float();
      shape.setFrame(100, 150, 200,100);
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Rectangle2D.Rectangle", 100, 120);
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Rectangle2D

AWT QuadCurve2D 类

简介

QuadCurve2D 类表示 (x,y) 坐标空间中的二次参数曲线段。

类声明

以下是 java.awt.geom.QuadCurve2D 类的声明

public abstract class QuadCurve2D
   extends Object
      implements Shape, Cloneable

类构造函数

序号构造函数和描述
1

protected QuadCurve2D() ()

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

Object clone()

创建一个与该对象具有相同类和相同内容的新对象。

2

boolean contains(double x, double y)

测试指定的坐标是否在 Shape 的边界内。

3

boolean contains(double x, double y, double w, double h)

测试 Shape 的内部是否完全包含指定的矩形区域。

4

boolean contains(Point2D p)

测试指定的 Point2D 是否在 Shape 的边界内。

5

boolean contains(Rectangle2D r)

测试 Shape 的内部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一个完全包含 Shape 的整数 Rectangle。

7

abstract Point2D getCtrlPt()

返回控制点。

8

abstract double getCtrlX()

以双精度返回控制点的 X 坐标。

9

abstract double getCtrlY()

以双精度返回控制点的 Y 坐标。

10

doublegetFlatness()

返回此 QuadCurve2D 的平坦度,或控制点到连接端点的线的最大距离。

11

static double getFlatness(double[] coords, int offset)

返回在指定数组的指定索引处存储的控制点指定的二次曲线的平坦度,或控制点到连接端点的线的最大距离。

12

static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

返回由指定的控制点指定的二次曲线的平坦度,或控制点到连接端点的线的最大距离。

13

double getFlatnessSq()

返回此 QuadCurve2D 的平坦度的平方,或控制点到连接端点的线的最大距离。

14

static double getFlatnessSq(double[] coords, int offset)

返回在指定数组的指定索引处存储的控制点指定的二次曲线的平坦度的平方,或控制点到连接端点的线的最大距离。

15

static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

返回由指定的控制点指定的二次曲线的平坦度的平方,或控制点到连接端点的线的最大距离。

16

abstract Point2D getP1()

返回起始点。

17

abstract Point2D getP2()

返回结束点。

18

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义此 QuadCurve2D 的形状的边界。

19

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一个迭代对象,该对象定义此 QuadCurve2D 的扁平化形状的边界。

20

abstract double getX1()

以双精度返回起点的 X 坐标。

21

abstract double getX2()

以双精度返回结束点的 X 坐标。

22

abstract double getY1()

以双精度返回起始点的 Y 坐标。

23

abstract double getY2()

以双精度返回结束点的 Y 坐标。

24

boolean intersects(double x, double y, double w, double h)

测试 Shape 的内部是否与指定矩形区域的内部相交。

25

boolean intersects(Rectangle2D r)

测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。

26

void setCurve(double[] coords, int offset)

将此 QuadCurve2D 的端点和控制点的位置设置为指定数组中指定偏移处的双精度坐标。

27

abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

将此曲线的端点和控制点的位置设置为指定的双精度坐标。

28

void setCurve(Point2D[] pts, int offset)

将此 QuadCurve2D 的端点和控制点的位置设置为指定数组中指定偏移处的 Point2D 对象的坐标。

29

void setCurve(Point2D p1, Point2D cp, Point2D p2)

将此 QuadCurve2D 的端点和控制点的位置设置为指定的 Point2D 坐标。

30

void setCurve(QuadCurve2D c)

将此 QuadCurve2D 的端点和控制点的位置设置为与指定的 QuadCurve2D 中的那些相同。

31

static int solveQuadratic(double[] eqn)

求解系数在 eqn 数组中的二次方程,并将非复数根放回同一数组中,返回根的数量。

32

static int solveQuadratic(double[] eqn, double[] res)

求解系数在 eqn 数组中的二次方程,并将非复数根放入 res 数组中,返回根的数量。

33

static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)

将存储在 src 数组中从 srcoff 到 srcoff + 5 索引处的坐标指定的二次曲线细分,并将生成的两个细分曲线存储到两个结果数组中的对应索引处。

34

void subdivide(QuadCurve2D left, QuadCurve2D right)

细分此 QuadCurve2D,并将生成的两个细分曲线存储到 left 和 right 曲线参数中。

35

static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)

细分由 src 参数指定的二次曲线,并将生成的两个细分曲线存储到 left 和 right 曲线参数中。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

QuadCurve2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      QuadCurve2D shape = new QuadCurve2D.Double();
      shape.setCurve(250D,250D,100D,100D,200D,150D);  
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("QuadCurve2D.Curve", 100, 120);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT QuadCurve2D

AWT Line2D 类

简介

Line2D 类表示 (x,y) 坐标空间中的线段。

类声明

以下是 java.awt.geom.Line2D 类的声明

public abstract class Line2D
   extends Object
      implements Shape, Cloneable

类构造函数

序号构造函数和描述
1

protected Line2D() ()

这是一个抽象类,不能直接实例化。

类方法

序号方法和描述
1

Object clone()

创建一个与该对象相同类的新的对象。

2

boolean contains(double x, double y)

测试指定的坐标是否在此 Line2D 的边界内。

3

boolean contains(double x, double y, double w, double h)

测试此 Line2D 的内部是否完全包含指定的矩形坐标集。

4

boolean contains(Point2D p)

测试给定的 Point2D 是否在此 Line2D 的边界内。

5

boolean contains(Rectangle2D r)

测试此 Line2D 的内部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一个完全包含 Shape 的整数 Rectangle。

7

abstract Point2D getP1()

返回此 Line2D 的起点 Point2D。

8

abstract Point2D getP2()

返回此 Line2D 的终点 Point2D。

9

PathIterator getPathIterator(AffineTransform at)

返回一个迭代对象,该对象定义此 Line2D 的边界。

10

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一个迭代对象,该对象定义此扁平化 Line2D 的边界。

11

abstract double getX1()

以双精度返回起始点的 X 坐标。

12

abstract double getX2()

以双精度返回结束点的 X 坐标。

13

abstract double getY1()

以双精度返回起始点的 Y 坐标。

14

abstract double getY2()

以双精度返回结束点的 Y 坐标。

15

boolean intersects(double x, double y, double w, double h)

测试 Shape 的内部是否与指定矩形区域的内部相交。

16

boolean intersects(Rectangle2D r)

测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。

17

boolean intersectsLine(double x1, double y1, double x2, double y2)

测试从 (x1,y1) 到 (x2,y2) 的线段是否与该线段相交。

18

boolean intersectsLine(Line2D l)

测试指定的线段是否与该线段相交。

19

static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)

测试从 (x1,y1) 到 (x2,y2) 的线段是否与从 (x3,y3) 到 (x4,y4) 的线段相交。

20

double ptLineDist(double px, double py)

返回点到该线的距离。

21

static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)

返回点到线的距离。

22

double ptLineDist(Point2D pt)

返回 Point2D 到该线的距离。

23

double ptLineDistSq(double px, double py)

返回点到该线的距离的平方。

24

static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)

返回点到线的距离的平方。

25

double ptLineDistSq(Point2D pt)

返回指定的 Point2D 到该线的距离的平方。

26

double ptSegDist(double px, double py)

返回点到该线段的距离。

27

static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)

返回点到线段的距离。

28

double ptSegDist(Point2D pt)

返回 Point2D 到该线段的距离。

29

double ptSegDistSq(double px, double py)

返回点到该线段的距离的平方。

30

static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)

返回点到线段的距离的平方。

31

double ptSegDistSq(Point2D pt)

返回 Point2D 到该线段的距离的平方。

32

int relativeCCW(double px, double py)

返回指定点 (px,py) 相对于该线段的位置指示符。

33

static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py)

返回指定点 (px,py) 相对于从 (x1,y1) 到 (x2,y2) 的线段的位置指示符。

34

int relativeCCW(Point2D p)

返回指定的 Point2D 相对于该线段的位置指示符。

35

abstract void setLine(double x1, double y1, double x2, double y2)

将此 Line2D 的端点的位置设置为指定的双精度坐标。

36

void setLine(Line2D l)

将此 Line2D 的端点的位置设置为与指定的 Line2D 的那些端点相同。

37

void setLine(Point2D p1, Point2D p2)

将此 Line2D 的端点的位置设置为指定的 Point2D 坐标。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Line2D 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Line2D shape = new Line2D.Double();
      shape.setLine(250D,250D,150D,150D);  
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Line2D.Line", 100, 120);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Line2D

AWT Font 类

简介

Font 类表示字体,字体用于以可见方式呈现文本。

类声明

以下是 java.awt.Font 类的声明

public class Font
   extends Object
      implements Serializable

字段

以下是 **java.awt.geom.Arc2D** 类的字段

  • static int BOLD -- 粗体样式常量。

  • static int CENTER_BASELINE -- 在布局文本时,在汉语、日语和韩语等表意文字中使用的基线。

  • static String DIALOG -- 逻辑字体“Dialog”的规范系列名称的字符串常量。

  • static String DIALOG_INPUT -- “DialogInput” 逻辑字体的规范族名称的字符串常量。

  • static int HANGING_BASELINE -- 在排版文本时,天城体和类似文字使用的基线。

  • static int ITALIC -- 斜体样式常量。

  • static int LAYOUT_LEFT_TO_RIGHT -- 传递给 layoutGlyphVector 的一个标志,指示文本根据双向分析结果是从左到右的。

  • static int LAYOUT_NO_LIMIT_CONTEXT -- 传递给 layoutGlyphVector 的一个标志,指示不应检查字符数组中指定限制之后的文本。

  • static int LAYOUT_NO_START_CONTEXT -- 传递给 layoutGlyphVector 的一个标志,指示不应检查字符数组中指定起始位置之前的文本。

  • static int LAYOUT_RIGHT_TO_LEFT -- 传递给 layoutGlyphVector 的一个标志,指示文本根据双向分析结果是从右到左的。

  • static String MONOSPACED -- “Monospaced” 逻辑字体的规范族名称的字符串常量。

  • protected String name -- 此 Font 的逻辑名称,传递给构造函数。

  • static int PLAIN -- 普通样式常量。

  • protected float pointSize -- 此 Font 的点大小(浮点数)。

  • static int ROMAN_BASELINE -- 大多数罗马文字在排版文本时使用的基线。

  • static String SANS_SERIF -- “SansSerif” 逻辑字体的规范族名称的字符串常量。

  • static String SERIF -- “Serif” 逻辑字体的规范族名称的字符串常量。

  • protected int size -- 此 Font 的点大小(四舍五入为整数)。

  • protected int style -- 此 Font 的样式,传递给构造函数。

  • static int TRUETYPE_FONT -- 识别类型为 TRUETYPE 的字体资源。

  • static int TYPE1_FONT -- 识别类型为 TYPE1 的字体资源。

类构造函数

序号构造函数和描述
1

protected Font() ()

根据指定的字体创建一个新的 Font。

2

Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

根据指定的字体创建一个新的 Font。

3

Font(String name, int style, int size)

根据指定的字体创建一个新的 Font。

类方法

序号方法和描述
1

boolean canDisplay(char c)

检查此 Font 是否具有指定字符的字形。

2

boolean canDisplay(int codePoint)

检查此 Font 是否具有指定字符的字形。

3

int canDisplayUpTo(char[] text, int start, int limit)

指示此 Font 是否可以显示从 start 开始到 limit 结束的指定文本中的字符。

4

int canDisplayUpTo(CharacterIterator iter, int start, int limit)

指示此 Font 是否可以显示从 start 开始到 limit 结束的 iter 指定的文本。

5

int canDisplayUpTo(String str)

指示此 Font 是否可以显示指定的字符串。

6

static Font createFont(int fontFormat, File fontFile)

使用指定的字体类型和指定的字体文件返回一个新的 Font。

7

static Font createFont(int fontFormat, InputStream fontStream)

使用指定的字体类型和输入数据返回一个新的 Font。

8

GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)

通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。

9

GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)

通过基于此 Font 中的 Unicode cmap 将指定的字符一对一映射到字形来创建 GlyphVector。

10

GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)

通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。

11

GlyphVector createGlyphVector(FontRenderContext frc, String str)

通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。

12

static Font decode(String str)

返回 str 参数描述的 Font。

13

Font deriveFont(AffineTransform trans)

通过复制当前 Font 对象并对其应用新的变换来创建一个新的 Font 对象。

14

Font deriveFont(float size)

通过复制当前 Font 对象并对其应用新的大小来创建一个新的 Font 对象。

15

Font deriveFont(int style)

通过复制当前 Font 对象并对其应用新的样式来创建一个新的 Font 对象。

16

Font deriveFont(int style, AffineTransform trans)

通过复制此 Font 对象并应用新的样式和变换来创建一个新的 Font 对象。

17

Font deriveFont(int style, float size)

通过复制此 Font 对象并应用新的样式和大小来创建一个新的 Font 对象。

18

Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

通过复制当前 Font 对象并对其应用一组新的字体属性来创建一个新的 Font 对象。

19

boolean equals(Object obj)

将此 Font 对象与指定的 Object 进行比较。

20

protected void finalize()

释放本机 Font 对象。

21

Map<TextAttribute,?> getAttributes()

返回此 Font 中可用的字体属性映射。

22

AttributedCharacterIterator.Attribute[] getAvailableAttributes()

返回此 Font 支持的所有属性的键。

23

byte getBaselineFor(char c)

返回显示此字符的适当基线。

24

String getFamily()

返回此 Font 的族名称。

25

String getFamily(Locale l)

返回此 Font 的族名称(针对指定的区域设置进行了本地化)。

26

static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

返回适合属性的 Font。

27

static Font getFont(String nm)

从系统属性列表中返回 Font 对象。

28

static Font getFont(String nm, Font font)

从系统属性列表中获取指定的 Font。

29

String getFontName()

返回此 Font 的字体面名称。

30

String getFontName(Locale l)

返回 Font 的字体面名称(针对指定的区域设置进行了本地化)。

31

float getItalicAngle()

返回此 Font 的斜体角度。

32

LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的参数创建的 LineMetrics 对象。

33

LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的参数创建的 LineMetrics 对象。

34

LineMetrics getLineMetrics(String str, FontRenderContext frc)

返回使用指定的字符串和 FontRenderContext 创建的 LineMetrics 对象。

35

LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的参数创建的 LineMetrics 对象。

36

Rectangle2D getMaxCharBounds(FontRenderContext frc)

返回在指定的 FontRenderContext 中定义的具有最大边界的字符的边界。

37

int getMissingGlyphCode()

返回当此 Font 没有指定 Unicode 代码点的字形时使用的 glyphCode。

38

String getName()

返回此 Font 的逻辑名称。

39

int getNumGlyphs()

返回此 Font 中的字形数。

40

java.awt.peer.FontPeer getPeer()

已弃用。字体渲染现在与平台无关。

41

String getPSName()

返回此 Font 的 PostScript 名称。

42

int getSize()

返回此 Font 的点大小(四舍五入为整数)。

43

float getSize2D()

返回此 Font 的点大小(浮点值)。

44

Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字符数组的逻辑边界。

45

Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的 CharacterIterator 中索引的字符的逻辑边界。

46

Rectangle2D getStringBounds(String str, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字符串的逻辑边界。

47

Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字符串的逻辑边界。

48

int getStyle()

返回此 Font 的样式。

49

AffineTransform getTransform()

返回与此 Font 关联的变换的副本。

50

int hashCode()

返回此 Font 的哈希码。

51

boolean hasLayoutAttributes()

如果此 Font 包含需要额外布局处理的属性,则返回 true。

52

boolean hasUniformLineMetrics()

检查此 Font 是否具有统一的行指标。

53

boolean isBold()

指示此 Font 对象的样式是否为 BOLD。

54

boolean isItalic()

指示此 Font 对象的样式是否为 ITALIC。

55

boolean isPlain()

指示此 Font 对象的样式是否为 PLAIN。

56

boolean isTransformed()

指示此 Font 对象是否具有影响其大小(除了 Size 属性之外)的变换。

57

GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)

返回一个新的 GlyphVector 对象,如果可能,执行文本的完整布局。

58

String toString()

将此 Font 对象转换为字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Font 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
      Font italicFont = new Font("Serif", Font.ITALIC, 24);        
      g2.setFont(italicFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 120); 
      Font boldFont = new Font("Serif", Font.BOLD, 24);        
      g2.setFont(boldFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 170); 
      Font boldItalicFont = new Font("Serif", Font.BOLD+Font.ITALIC, 24);        
      g2.setFont(boldItalicFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 220); 
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Font

AWT Color 类

简介

Color 类以默认的 sRGB 颜色空间或由 ColorSpace 标识的任意颜色空间中的颜色来表示颜色。

类声明

以下是 **java.awt.Color** 类的声明

public class Color
   extends Object
      implements Paint, Serializable

字段

以下是 **java.awt.geom.Arc2D** 类的字段

  • static Color black -- 黑色。

  • static Color BLACK -- 黑色。

  • static Color blue -- 蓝色。

  • static Color BLUE -- 蓝色。

  • static Color cyan -- 青色。

  • static Color CYAN -- 青色。

  • static Color DARK_GRAY -- 深灰色。

  • static Color darkGray -- 深灰色。

  • static Color gray -- 灰色。

  • static Color GRAY -- 灰色。

  • static Color green -- 绿色。

  • static Color GREEN -- 绿色。

  • static Color LIGHT_GRAY -- 浅灰色。

  • static Color lightGray -- 浅灰色。

  • static Color magenta -- 品红色。

  • static Color MAGENTA -- 品红色。

  • static Color orange -- 橙色。

  • static Color ORANGE -- 橙色。

  • static Color pink -- 粉红色。

  • static Color PINK -- 粉红色。

  • static Color red -- 红色。

  • static Color RED -- 红色。

  • static Color white -- 白色。

  • static Color WHITE -- 白色。

  • static Color yellow -- 黄色。

  • static Color YELLOW -- 黄色。

类构造函数

序号构造函数和描述
1

Color(ColorSpace cspace, float[] components, float alpha)

在指定的 ColorSpace 中创建一个颜色,其颜色分量在浮点数组中指定,并且指定了 alpha 值。

2

Color(float r, float g, float b)

使用指定的红色、绿色和蓝色值(范围为 0.0 到 1.0)创建一个不透明的 sRGB 颜色。

3

Color(float r, float g, float b, float a)

使用指定的红色、绿色、蓝色和 alpha 值(范围为 0.0 到 1.0)创建一个 sRGB 颜色。

4

Color(int rgb)

使用指定的组合 RGB 值创建一个不透明的 sRGB 颜色,该值由位 16-23 中的红色分量、位 8-15 中的绿色分量和位 0-7 中的蓝色分量组成。

5

Color(int rgba, boolean hasalpha)

使用指定的组合 RGBA 值创建一个 sRGB 颜色,该值由位 24-31 中的 alpha 分量、位 16-23 中的红色分量、位 8-15 中的绿色分量和位 0-7 中的蓝色分量组成。

6

Color(int r, int g, int b)

创建一个不透明的 sRGB 颜色,其红色、绿色和蓝色值在 (0 - 255) 范围内。

7

Color(int r, int g, int b, int a)

创建一个 sRGB 颜色,其红色、绿色、蓝色和 alpha 值在 (0 - 255) 范围内。

类方法

序号方法和描述
1

Color brighter()

创建一个新的 Color,它是此 Color 的更亮版本。

2

PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints)

创建并返回一个用于生成纯色图案的 PaintContext。

3

Color darker()

创建一个新的 Color,它是此 Color 的更暗版本。

4

static Color decode(String nm)

将字符串转换为整数,并返回指定的透明 Color。

5

boolean equals(Object obj)

确定另一个对象是否等于此 Color。

6

int getAlpha()

返回 0-255 范围内的 alpha 分量。

7

int getBlue()

返回默认 sRGB 空间中 0-255 范围内的蓝色分量。

8

static Color getColor(String nm)

在系统属性中查找颜色。

9

static Color getColor(String nm, Color v)

在系统属性中查找颜色。

10

static Color getColor(String nm, int v)

在系统属性中查找颜色。

11

float[] getColorComponents(ColorSpace cspace, float[] compArray)

返回一个浮点数组,其中仅包含由 cspace 参数指定的 ColorSpace 中 Color 的颜色分量。

12

float[] getColorComponents(float[] compArray)

返回一个浮点数组,其中仅包含 Color 的颜色分量,位于 Color 的 ColorSpace 中。

13

ColorSpace getColorSpace()

返回此 Color 的 ColorSpace。

14

float[] getComponents(ColorSpace cspace, float[] compArray)

返回一个浮点数组,其中包含 Color 的颜色和 alpha 分量,位于由 cspace 参数指定的 ColorSpace 中。

15

float[] getComponents(float[] compArray)

返回一个浮点数组,其中包含 Color 的颜色和 alpha 分量,位于 Color 的 ColorSpace 中。

16

int getGreen()

返回默认 sRGB 空间中 0-255 范围内的绿色分量。

17

static Color getHSBColor(float h, float s, float b)

基于 HSB 颜色模型的指定值创建一个 Color 对象。

18

int getRed()

返回默认 sRGB 空间中 0-255 范围内的红色分量。

19

int getRGB()

返回表示默认 sRGB ColorModel 中颜色的 RGB 值。

20

float[] getRGBColorComponents(float[] compArray)

返回一个浮点数组,其中仅包含 Color 的颜色分量,位于默认 sRGB 颜色空间中。

21

float[] getRGBComponents(float[] compArray)

返回一个浮点数组,其中包含 Color 的颜色和 alpha 分量,以默认 sRGB 颜色空间表示。

22

int getTransparency()

返回此 Color 的透明模式。

23

int hashCode()

计算此 Color 的哈希码。

24

static int HSBtoRGB(float hue, float saturation, float brightness)

将由 HSB 模型指定的颜色的分量转换为默认 RGB 模型的等效值集。

25

static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals)

将由默认 RGB 模型指定的颜色的分量转换为色相、饱和度和亮度的等效值集,它们是 HSB 模型的三个分量。

26

String toString()

返回此 Color 的字符串表示形式。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

Color 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.setColor(Color.red);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
      g2.setColor(Color.GRAY);
      g2.drawString("Welcome to TutorialsPoint", 50, 120);  
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AWTGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AWTGraphicsDemo

验证以下输出

AWT Color

AWT BasicStroke 类

简介

BasicStroke 类以默认的 sRGB 颜色空间或由 ColorSpace 标识的任意颜色空间中的颜色来表示颜色。

类声明

以下是java.awt.BasicStroke类的声明

public class BasicStroke
   extends Object
      implements Stroke

字段

以下是 **java.awt.geom.Arc2D** 类的字段

  • static int CAP_BUTT -- 以不添加任何装饰的方式结束未闭合的子路径和虚线段。

  • static int CAP_ROUND -- 以圆形装饰结束未闭合的子路径和虚线段,该装饰的半径等于笔宽的一半。

  • static int CAP_SQUARE -- 以正方形投影结束未闭合的子路径和虚线段,该投影超出线段末端,延伸距离等于线宽的一半。

  • static int JOIN_BEVEL -- 通过用直线段连接其宽轮廓的外角来连接路径段。

  • static int JOIN_MITER -- 通过扩展其外部边缘直到它们相遇来连接路径段。

  • static int JOIN_ROUND -- 通过以线宽一半的半径圆角连接路径段。

类构造函数

序号构造函数和描述
1

BasicStroke()

使用所有属性的默认值构造一个新的 BasicStroke。

2

BasicStroke(float width)

使用指定的线宽和端点和连接样式的默认值构造一个实心 BasicStroke。

3

BasicStroke(float width, int cap, int join)

使用指定的属性构造一个实心 BasicStroke。

4

BasicStroke(float width, int cap, int join, float miterlimit)

使用指定的属性构造一个实心 BasicStroke。

5

BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)

使用指定的属性构造一个新的 BasicStroke。

类方法

序号方法和描述
1

Shape createStrokedShape(Shape s)

返回一个 Shape,其内部定义了指定 Shape 的描边轮廓。

2

boolean equals(Object obj)

通过首先测试它是否是 BasicStroke,然后将其宽度、连接、端点、斜接限制、虚线和虚线相位属性与此 BasicStroke 的属性进行比较,来测试指定对象是否等于此 BasicStroke。

3

float[] getDashArray()

返回表示虚线段长度的数组。

4

float getDashPhase()

返回当前虚线相位。

5

int getEndCap()

返回端点样式。

6

int getLineJoin()

返回线连接样式。

7

float getLineWidth()

返回线宽。

8

float getMiterLimit()

返回斜接连接的限制。

9

int hashCode()

返回此描边的哈希码。

继承的方法

此类继承自以下类的方法

  • java.lang.Object

BasicStroke 示例

使用您选择的任何编辑器创建以下 Java 程序,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      g2.setStroke(new BasicStroke(3.0f));
      g2.setPaint(Color.blue);

      Rectangle2D shape = new Rectangle2D.Float();
      shape.setFrame(100, 150, 200,100);
      g2.draw(shape);

      Rectangle2D shape1 = new Rectangle2D.Float();
      shape1.setFrame(110, 160, 180,80);
      g2.setStroke(new BasicStroke(1.0f));
   
      g2.draw(shape1);
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.setColor(Color.DARK_GRAY);
      g2.drawString("TutorialsPoint", 130, 200);
   }
}

使用命令提示符编译程序。转到 **D:/ > AWT** 并键入以下命令。

D:\AWT>javac com\tutorialspoint\gui\AwtGraphicsDemo.java

如果没有任何错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtGraphicsDemo

验证以下输出

AWT BasicStroke
广告