AWT 快速指南

图形用户界面

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

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

基本术语

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

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

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

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

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

CanvasCanvas 组件表示应用程序可以在屏幕上绘图的空白矩形区域。应用程序还可以从 Canvas 组件的空白区域捕获输入事件。

基于 GUI 的应用程序示例

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

  • 自动柜员机 (ATM)

  • 航空售票系统

  • 火车站的信息亭

  • 移动应用程序

  • 导航系统

GUI 相对于 CUI 的优势

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

  • GUI 使应用程序更具娱乐性,有趣的是,CUI 则不然。

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

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

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

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

  • GUI 提供多任务环境,CUI 也是如此,但 CUI 提供的便利性不如 GUI。

  • 使用 GUI 更容易控制和导航操作系统,但在命令用户界面中速度会非常慢。 GUI 可以轻松定制。

环境设置

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

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

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

设置 Windows 2000/XP 的路径:

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

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

  • 单击"高级"选项卡下的"环境变量"按钮。

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

设置 Windows 95/98/ME 的路径:

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

  • 编辑"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 非菜单用户界面控件的抽象基类。组件表示具有图形表示的对象。

类声明

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

类构造函数

S.N.构造函数 &描述
1

protected Component()

这将创建一个新的组件。

类方法

S.N.方法和描述
1

boolean action(Event evt, Object what)

已弃用。从 JDK 1.1 版开始,应将此组件注册为触发操作事件的组件上的 ActionListener。

2

void add(PopupMenu popup)

将指定的弹出菜单添加到组件。

3

void addComponentListener(ComponentListener l)

添加指定的组件侦听器以从此组件接收组件事件。

4

void addFocusListener(FocusListener l)

添加指定的焦点侦听器以在此组件获得输入时从此组件接收焦点事件焦点。

5

void addHierarchyBoundsListener(HierarchyBoundsListener l)

添加指定的层次结构边界侦听器,以便当此容器所属的层次结构发生变化时从此组件接收层次结构边界事件。

6

void addHierarchyListener(HierarchyListener l)

添加指定的层次结构侦听器,以便当此容器所属的层次结构发生变化时从此组件接收层次结构更改事件。

7

void addInputMethodListener(InputMethodListener l)

添加指定的输入法侦听器,以便从此组件接收输入法事件组件。

8

void addKeyListener(KeyListener l)

添加指定的按键监听器,以接收来自此组件的按键事件。

9

void addMouseListener(MouseListener l)

添加指定的鼠标监听器,以接收来自此组件的鼠标事件。

10

void addMouseMotionListener(MouseMotionListener l)

添加指定的鼠标动作监听器,以接收来自此组件的鼠标动作事件。

11

void addMouseWheelListener(MouseWheelListener l)

添加指定的鼠标滚轮监听器以接收来自此组件的鼠标滚轮事件。

12

void addNotify()

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

13

void addPropertyChangeListener(PropertyChangeListener listener)

将 PropertyChangeListener 添加到侦听器列表。

14

void addProperty ChangeListener(String propertyName, Property ChangeListener listener)

将 PropertyChangeListener 添加到特定属性的侦听器列表。

15

void applyComponentOrientation(ComponentOrientation orientation)

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

16

boolean areFocusTraversalKeysSet(int id)

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

17

int checkImage(Image image, ImageObserver observer)

返回指定图像的屏幕表示的构造状态。

18

int checkImage(Image image,int width,int height, ImageObserver observer)

返回指定图像的屏幕表示的构造状态图像。

19

boolean contains(int x,int y)

检查此组件是否"包含"指定点,其中 x 和 y 定义为相对于此组件的坐标系。

20

boolean contains(Point p)

检查此组件是否"包含"指定点,其中该点的 x 和 y 坐标定义为相对于此组件的坐标系。

21

Image createImage(ImageProducer production)

根据指定图像创建图像生产者。

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)

支持报告 Object 属性的绑定属性更改。

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)

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

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事件监听器> 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。

84MouseWheelListener[] getMouseWheelListeners()
返回此组件上注册的所有鼠标滚轮侦听器的数组组件。
85

String getName()

获取组件的名称。

86

Container getParent()

获取此组件的父级。

87

java.awt.peer.ComponentPeer getPeer() 已弃用。从 JDK 1.1 版开始,程序不应直接操作对等体;由布尔值 isDisplayable() 替换。

88

Dimension getPreferredSize()

获取此组件的首选大小。

89

PropertyChangeListener[] getPropertyChangeListeners()

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

90

Property ChangeListener[] getProperty ChangeListeners (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容器)

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

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

Componentlocate(intx,inty)

已弃用。从 JDK 1.1 版开始,由 getComponentAt(int,int) 取代。

133

Pointlocation()

已弃用。从 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)

通过将发生在此组件上的事件分派给任何已注册的 FocusListener 对象来处理它们。

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 remove Property ChangeListener(String propertyName, PropertyChange Listener 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。

204void 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 verify()

确保此组件具有有效布局。

215

Rectangle bounds()

已弃用。从 JDK 1.1 版开始,由 getBounds() 取代。

216

protected AWTEvent coalesceEvents(AWTEvent establishedEvent, 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 -- 表示标签应右对齐合理。

类构造函数

S.N.构造函数 &描述
1

Label()

构造一个空标签。

2

Label(String text)

构造一个带有指定文本字符串的新标签,左对齐。

3

Label(String text, int alignment)

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

类方法

S.N.方法 &描述
1

void addNotify()

为此标签创建对等体。

2

AccessibleContext getAccessibleContext()

获取与此标签关联的 AccessibleContext。

3

int getAlignment()

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

4

String getText()

获取此标签的文本。

5

protected String paramString()

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

6

void setAlignment(int alignment)

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

7

void setText(String text)

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

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

Label 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Label

AWT Button 按钮类

简介

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

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

类声明

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

public class Button
    extends Component
        implements Accessible

类构造函数

S.N.构造函数 &描述
1

Button()

构造一个带有空字符串标签的按钮。

2

Button(String text)

构造一个带有指定标签的新按钮。

类方法

S.N.方法 &描述
1

void addActionListener(ActionListener l)

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

2

void addNotify()

创建按钮的对等体。

3

AccessibleContext getAccessibleContext()

获取与此按钮关联的 AccessibleContext。

4

String getActionCommand()

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

5

ActionListener[] getActionListeners()

返回此按钮上注册的所有动作监听器的数组。

6

String getLabel()

获取此按钮的标签。

7

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

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

8

protected String paramString()

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

9

protected void processActionEvent(ActionEvent e)

通过将发生在此按钮上的动作事件分派给任何已注册的 ActionListener 对象来处理这些事件。

10

protected void processEvent(AWTEvent e)

处理此按钮上的事件按钮。

11

void removeActionListener(ActionListener l)

删除指定的动作侦听器,使其不再接收来自此按钮的动作事件。

12

void setActionCommand(String command)

设置此按钮触发的动作事件的命令名称。

13

void setLabel(String label)

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

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

Button 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Button

AWT CheckBox 类

简介

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

类声明

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

public class Checkbox
    extends Component
        implements ItemSelectable,Accessible

类构造函数

S.N.构造函数 &描述
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)

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

类方法

S.N.方法 &描述
1

void addItemListener(ItemListener l)

添加指定的项目侦听器以从此复选框接收项目事件。

2

void addNotify()

创建复选框的对等项。

3

AccessibleContext getAccessibleContext()

获取与此复选框关联的 AccessibleContext。

4

CheckboxGroup getCheckboxGroup()

确定此复选框的组。

5

ItemListener[] getItemListeners()

返回在此复选框上注册的所有项目侦听器的数组。

6

String getLabel()

获取此复选框的标签。

7

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

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

8

Object[] getSelectedObjects()

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

9

boolean getState()

确定此复选框是处于 on 还是 off 状态。

10

protected String paramString()

返回表示此复选框状态的字符串。

11

protected void processEvent(AWTEvent e)

处理此复选框上的事件。

12

protected void processItemEvent(ItemEvent e)

通过将事件分派给任何已注册的 ItemListener 对象来处理此复选框上发生的项目事件。

13

void removeItemListener(ItemListener l)

删除指定的项目侦听器,使项目侦听器不再接收来自此复选框的项目事件。

14

void setCheckboxGroup(CheckboxGroup g)

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

15

void setLabel(String label)

将此复选框的标签设置为字符串参数。

16

void setState(boolean state)

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

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

CheckBox 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT CheckBox

AWT CheckBoxGroup 类

简介

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

类声明

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

public class CheckboxGroup
    extends Object
        implements Serializable

类构造函数

S.N.构造函数 &描述
1

CheckboxGroup() ()

创建 CheckboxGroup 的新实例。

类方法

S.N.方法和描述
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

CheckBoxGroup 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT CheckBoxGroup

AWT List 类

简介

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

类声明

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

public class List
   extends Component
      implements ItemSelectable, Accessible

类构造函数

S.N.构造函数 &描述
1

List()

创建一个新的滚动列表。

2

List(int rows)

创建一个新的滚动列表,初始化为指定数量的可见行。

3

List(int rows, boolean multipleMode)

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

类方法

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

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

S.N.方法& 描述
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 allowingMultipleSelections()

已弃用。从 JDK 1.1 版开始,由 isMultipleMode() 取代。

9

void clear()

已弃用。从 JDK 1.1 版开始,由 removeAll() 取代。

10

int countItems()

已弃用。从 JDK 1.1 版开始,由 getItemCount() 取代。

11

void delItem(int position)

已弃用。由 remove(String) 和 remove(int) 取代。

12

void delItems(int start, int end)

已弃用。从 JDK 1.1 版开始,将来不再供公众使用。该方法预计仅作为包私有方法保留。

13

void deselect(int index)

取消选择指定索引处的项目。

14

AccessibleContext getAccessibleContext()

获取与此列表关联的 AccessibleContext。

15

ActionListener[] getActionListeners()

返回此列表上注册的所有动作侦听器的数组。

16

String getItem(int index)

获取项目与指定索引关联的。

17

int getItemCount()

获取列表中的项目数。

18

ItemListener[] getItemListeners()

返回此列表上注册的所有项目侦听器的数组。

19

String[] getItems()

获取列表中的项目。

20

Dimension getMinimumSize()

确定此滚动列表的最小大小。

21

Dimension getMinimumSize(int rows)

获取具有指定行数的列表的最小尺寸。

22

Dimension getPreferredSize()

获取此滚动列表的首选大小。

23

Dimension getPreferredSize(int rows)

获取具有指定行数的列表的首选尺寸。

24

int getRows()

获取此列表中可见行的数量。

25

int getSelectedIndex()

获取列表中选定项目的索引,

26

int[] getSelectedIndexes()

获取列表中选定的索引。

27

String getSelectedItem()

获取此滚动列表中选定的项目。

28

String[] getSelectedItems()

获取此滚动列表中选定的项目列表。

29

Object[] getSelectedObjects()

获取此滚动列表中对象数组中的选定项。

30

int getVisibleIndex()

获取最后通过方法 makeVisible 可见的项的索引。

31

boolean isIndexSelected(int index)

确定此滚动列表中的指定项是否被选中。

32

boolean isMultipleMode()

确定此列表是否允许多项选择。

33

boolean isSelected(int index)

已弃用。从 JDK 1.1 版开始,由 isIndexSelected(int) 取代。

34

void makeVisible(int index)

使指定索引处的项目可见。

35

Dimension minimumSize()

已弃用。从 JDK 1.1 版开始,由 getMinimumSize() 取代。

36

Dimension minimumSize(int rows)

已弃用。从 JDK 1.1 版开始,由 getMinimumSize(int) 取代。

37

protected String paramString()

返回表示此滚动列表状态的参数字符串。

38

Dimension preferredSize()

已弃用。从 JDK 1.1 版开始,由 getPreferredSize() 取代。

39

Dimension preferredSize(int rows)

已弃用。从 JDK 1.1 版开始,由 getPreferredSize(int) 取代。

40

protected void processActionEvent(ActionEvent e)

通过将发生在此组件上的动作事件分派给任何已注册的 ActionListener 对象来处理它们。

41

protected void processEvent(AWTEvent e)

处理此滚动列表上的事件。

42

protected void processItemEvent(ItemEvent e)

通过将发生在此列表上的项目事件分派给任何已注册的 ItemListener 对象来处理它们。

43

void remove(int position)

从此滚动列表中移除指定位置的项目。

44

void remove(String item)

从列表中移除第一个出现的项目。

45

void removeActionListener(ActionListener l)

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

46

void removeAll()

从此列表中移除所有项目。

47

void removeItemListener(ItemListener l)

删除指定的项目侦听器,使其不再接收来自此列表的项目事件。

48

void removeNotify()

删除此列表的对等项。

49

void replaceItem(String newValue, int index)

用新字符串替换滚动列表中指定索引处的项目。

50

void select(int index)

选择滚动列表中指定索引处的项目列表。

51

void setMultipleMode(boolean b)

设置确定此列表是否允许多项选择的标志。

52

void setMultipleSelections(boolean b)

已弃用。从 JDK 1.1 版开始,由 setMultipleMode(boolean) 取代。

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

List 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT List

AWT TextField 类

简介

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

类声明

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

public class TextField
    extends TextComponent

类构造函数

S.N.构造函数 &描述
1

TextField()

构造一个新的文本字段。

2

TextField(int columns)

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

3

TextField(String text)

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

4

TextField(String text, int columns)

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

类方法

S.N.方法与说明
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 Example

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

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	utorialspoint\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 -- 仅创建并显示垂直滚动条。

类构造函数

S.N.构造函数 &描述
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)

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

类方法

S.N.方法与说明
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 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT TextArea

AWT Choice 类

简介

选择控件用于显示弹出式选择菜单。所选选项显示在菜单顶部。

类声明

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

public class Choice
   extends Component
      implements ItemSelectable, Accessible

类构造函数

S.N.构造函数和说明
1

Choice() ()

创建一个新的选择菜单。

类方法

S.N.方法和说明描述
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)

处理此 Choice 上的事件。

17

protected void processItemEvent(ItemEvent e)

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

18

void remove(int position)

从选择菜单中的指定位置移除一个项目。

19

void remove(String item)

从选择菜单中移除第一个出现的 item。

20

void removeAll()

从选择菜单中移除所有项目。

21

void removeItemListener(ItemListener l)

移除指定的项目监听器,使其不再接收来自此选择的项目事件菜单。

22

void select(int pos)

将此 Choice 菜单中选定的项目设置为指定位置的项目。

23

void select(String str)

将此 Choice 菜单中选定的项目设置为名称等于指定字符串的项目。

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

Choice 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

Canvas()

构造一个新的 Canvas。

2

Canvas(GraphicsConfiguration config)

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

类方法

S.N.方法 &描述
1

void addNotify()

创建画布的对等体。

2

void createBufferStrategy(int numBuffers)

为此组件创建新的多缓冲策略。

3

void createBufferStrategy(int numBuffers, BufferCapabilities caps)

使用所需的缓冲功能为此组件创建新的多缓冲策略。

4

AccessibleContext getAccessibleContext()

获取关联的 AccessibleContext使用此 Canvas。

5

BufferStrategy getBufferStrategy()

返回此组件使用的 BufferStrategy。

6

void paint(Graphics g)

绘制此画布。

7

void pdate(Graphics g)

更新此画布。

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

Canvas 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Canvas

AWT Image 图像类

简介

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

类声明

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

public abstract class Image
    extends Object

字段

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

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

  • static int SCALE_AREA_AVERAGING --使用 Area Averaging 图像缩放算法。

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

  • static int SCALE_FAST -- 选择一种优先考虑缩放速度而非缩放后图像平滑度的图像缩放算法。

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

  • static int SCALE_SMOOTH -- 选择一种优先考虑图像平滑度而非缩放速度的图像缩放算法。

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

类构造函数

S.N.构造函数& 描述
1

Image()

类方法

S.N.方法 &描述
1

void flush()

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

2

float getAccelerationPriority()

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

3

ImageCapabilities getCapabilities(GraphicsConfiguration gc)

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

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

Image 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Image

AWT Scrollbar 类

简介

Scrollbar 控件表示一个滚动条组件,以便用户从一系列值中进行选择。

类声明

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

public class Scrollbar
    extends Component
        implements Adjustable, Accessible

字段

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

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

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

类构造函数

S.N.构造函数 &描述
1

Scrollbar()

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

2

Scrollbar(int orientation)

构造一个具有指定方向的新滚动条。

3

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

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

类方法

S.N.方法 &描述
1

void addAdjustmentListener(AdjustmentListener l)

添加指定的调整侦听器以从此滚动条接收 AdjustmentEvent 实例。

2

void addNotify()

创建 Scrollbar 的对等体。

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 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最小值,int 最大值)

设置此滚动条的四个属性的值:值、可见量、最小值和最大值。

28

void setVisibleAmount(int newAmount)

设置此滚动条的可见量。

29

AccessibleContext getAccessibleContext()

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

30

AdjustmentListener[] getAdjustmentListeners()

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

31

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

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

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

Choice 示例

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

AwtControlDemo
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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

Image Button

AWT Dialog 对话框类

简介

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

类声明

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

public class Dialog
    extends Window

字段

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

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

类构造函数

S.N.构造函数 &描述
1

Dialog(Dialog 所有者)

使用指定的所有者 Dialog 和空标题构造一个最初不可见、无模式的 Dialog。

2

Dialog(Dialog 所有者,字符串标题)

使用指定的所有者 Dialog 和标题构造一个最初不可见、无模式的 Dialog。

3

Dialog(Dialog 所有者,字符串标题,布尔模式)

使用指定的所有者 Dialog、标题和模式构造一个最初不可见的 Dialog。

4

Dialog(Dialog 所有者,字符串标题,布尔模式, 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)

使用指定的所有者 Frame、标题和模式构造一个最初不可见的 Dialog。

9

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

使用指定的所有者 Frame、标题、模式和 GraphicsConfiguration 构造一个最初不可见的 Dialog。

10

Dialog(Window Owner)

使用指定的所有者 Window 和空标题构造一个最初不可见、无模式的 Dialog。

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 构造一个最初不可见的对话框

类方法

S.N.方法 &描述
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

Dialog 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Dialog

AWT FileDialog 类

简介

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

类声明

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

public class FileDialog
    extends Dialog

字段

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

  • static int LOAD -- 此常量值表示文件对话框窗口的目的是定位要读取的文件。

  • static int SAVE -- 此常量值表示文件对话框窗口的目的是定位要读取的文件。要写入的内容。

类构造函数

S.N.构造函数 &描述
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)

创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。

类方法

S.N.方法 &描述
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

FileDialog 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT FileDialog

AWT 事件处理

什么是事件?

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

事件类型

事件大致可分为两类:

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

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

什么是事件处理?

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

委托事件模型有以下关键参与者:

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

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

这种方法的好处是用户界面逻辑与生成事件的逻辑完全分离。 用户界面元素能够将事件的处理委托给单独的代码片段。在这个模型中,监听器需要向源对象注册,这样监听器才能接收事件通知。这是一种处理事件的有效方法,因为事件通知只发送给那些想要接收它们的监听器。

事件处理涉及的步骤

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

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

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

  • 该方法现在得到执行并返回。

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

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

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

回调方法

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

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

Event Handling 示例

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

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	utorialspoint\gui\AwtControlDemo.java

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

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

验证以下输出

AWT Event Handling

AWT Event 事件类

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

EventObject 类

它是所有事件状态对象都应从中派生的根类。所有事件都是通过对对象()的引用构建的,该对象在逻辑上被视为最初发生相关事件的对象。此类在 java.util 包中定义。

类声明

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

public class EventObject
    extends Object
        implements Serializable

字段

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

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

类构造函数

S.N.构造函数和说明
1

EventObject(对象源)

构造一个原型事件。

类方法

S.N.方法和描述
1

Object getSource()

Event最初发生的对象。

2

String toString()

返回此EventObject的String表示形式。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

AWT Event 事件类:

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

类表示窗口状态的变化。

Sr. No.Control &描述
1

AWTEvent

它是所有 AWT 事件的根事件类。此类及其子类取代了原始的 java.awt.Event 类。

2

ActionEvent

单击按钮或双击列表项时会生成 ActionEvent。

3

InputEvent

InputEvent 类是所有组件级输入事件的根事件类。

4

KeyEvent

输入字符时,Key 事件为生成。

5

MouseEvent

此事件表示组件中发生了鼠标操作。

6

TextEvent

此类的对象表示文本事件。

7

WindowEvent

此类的对象表示窗口状态的变化。

8

AdjustmentEvent

该类的对象表示 Adjustable 对象发出的调整事件。

9

ComponentEvent

该类的对象表示窗口状态的变化。

10

ContainerEvent

该类的对象表示窗口状态的变化。

11

MouseMotionEvent

该类的对象表示窗口状态的变化。

12

PaintEvent

此类的对象表示窗口状态的变化。

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

类构造函数

S.N.构造函数 &描述
1

AWTEvent(Event event)

根据 1.0 样式事件的参数构造一个 AWTEvent 对象。

2

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

根据指定的源对象和类型构造一个 AWTEvent 对象。

类方法

S.N.方法 &描述
1

protected void consumer()

如果此事件可以被使用,则使用此事件。

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 -- 控制修饰符。

  • static int META_MASK -- meta 修饰符。

  • static int SHIFT_MASK -- shift 修饰符。

类构造函数

S.N.构造函数 &描述
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 对象并时间戳。

类方法

S.N.方法 &描述
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 -- 控制键扩展修饰符常数。

  • static int CTRL_MASK -- 控制键修饰符常数。

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

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

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

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

类方法

S.N.方法 &描述
1

void consumer()

使用此事件,以便它不会被发起它的源以默认方式处理。

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 事件。有三种类型的 Key 事件,由整数常量表示。这些按键事件如下

  • KEY_PRESSED

  • KEY_RELASED

  • KEY_TYPED

类声明

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

public class KeyEvent
    extends InputEvent

字段

以下是 java.awt.InputEvent 类的字段:

  • static char CHAR_UNDEFINED --KEY_PRESSED 和 KEY_RELEASED 事件未映射到有效的 Unicode 字符,将其用于 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 --Accept 或 Commit 功能键的常量。

  • static int VK_ADD

  • static int VK_AGAIN

  • static int VK_ALL_CANDIDATES --All Candidates 功能键的常量。

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

类构造函数

S.N.构造函数和说明
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)

类方法

S.N.方法 &描述
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"键的常量。

类构造函数

S.N.构造函数 &描述
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 对象。

类方法

S.N.方法 &描述
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 convertPoint(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 表示对象的文本已更改。

类构造函数

S.N.构造函数 &描述
1

TextEvent(Object source, int id)

构造一个 TextEvent 对象。

类方法

S.N.方法和描述
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 -- 窗口状态改变事件类型。

类构造函数

S.N.构造函数 &描述
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 对象。

类方法

S.N.方法 &描述
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 -- 单位增量调整类型。

类构造函数

S.N.构造函数 &描述
1

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

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

2

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

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

类方法

S.N.方法 &描述
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 -- 此事件表示组件已可见。

类构造函数

S.N.构造函数 &描述
1

ComponentEvent(Component source, int id)

构造一个 ComponentEvent 对象。

类方法

S.N.方法 &描述
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 范围中的最后一个数字。

类构造函数

S.N.构造函数 &描述
1

ContainerEvent(Component source, int id, Component child)

构造一个 ContainerEvent 对象。

类方法

S.N.方法 &描述
1Component getChild()
返回受事件影响的组件。
2Container getContainer()
返回事件的发起者。
3String 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

接口方法

S.N.方法 &描述
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 -- paint 事件类型。

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

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

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

类构造函数

S.N.构造函数 &描述
1

PaintEvent(Component source, int id, Rectangle updateRect)

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

类方法

S.N.方法 &描述
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

接口方法

S.N.方法 &描述
1

void actionPerformed(ActionEvent e)

发生操作时调用。

继承的方法

此接口从以下接口继承方法:

  • java.awt.EventListener

ActionListener 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
1

void componentHidden(ComponentEvent e)

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

2

void componentMoved(ComponentEvent e)

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

3

void componentResized(ComponentEvent e)

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

4

void componentShown(ComponentEvent e)

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

继承的方法

此接口从以下接口继承方法:

  • java.awt.EventListener

ComponentListener 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
1

void itemStateChanged(ItemEvent e)

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

继承的方法

此接口从以下接口继承方法:

  • java.awt.EventListener

ItemListener 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
1

void keyPressed(KeyEvent e)

按下某个键时调用。

2

void keyReleased(KeyEvent e)

释放某个键时调用。

3

void keyTyped(KeyEvent e)

输入某个键时调用。

继承的方法

此接口从以下接口继承方法:

  • java.awt.EventListener

KeyListener 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
1

void textValueChanged(TextEvent e)

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

继承的方法

此接口从以下接口继承方法:

  • java.awt.EventListener

TextListener 示例

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

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	utorialspoint\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

接口方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\gui\AwtListenerDemo.java

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

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

验证以下输出

AWT WindowListener

AWT AdjustmentListener 接口

简介

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

类声明

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

public interface AdjustmentListener
    extends EventListener

接口方法

S.N.方法 &描述
1

void adjustmentValueChanged(AdjustmentEvent e)

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

继承的方法

此类从以下接口继承方法:

  • java.awt.event.EventListener

AdjustmentListener 示例

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

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	utorialspoint\gui\AwtListenerDemo.java

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

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

验证以下输出

AWT AdjustmentListener

AWT ContainerListener 接口

简介

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

类声明

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

public interface ContainerListener
extends EventListener

接口方法

S.N.方法 &描述
1

void componentAdded(ContainerEvent e)

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

2

void componentRemoved(ContainerEvent e)

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

继承的方法

此类从以下接口继承方法:

  • java.awt.event.EventListener

AdjustmentListener 示例

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

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	utorialspoint\gui\AwtListenerDemo.java

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

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

验证以下输出

AWT ContainerListener

AWT MouseMotionListener 接口

简介

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

类声明

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

public interface MouseMotionListener
extends EventListener

接口方法

S.N.方法 &描述
1

void mouseDragged(MouseEvent e)

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

2

void mouseMoved(MouseEvent e)

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

继承的方法

此类从以下接口继承方法:

  • java.awt.event.EventListener

MouseMotionListener 示例

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

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	utorialspoint\gui\AwtListenerDemo.java

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

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

验证以下输出

AWT MouseMotionListener

AWT FocusListener 接口

简介

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

类声明

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

public interface FocusListener
extends EventListener

接口方法

S.N.方法 &描述
1

void focusGained(FocusEvent e)

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

2

void focusLost(FocusEvent e)

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

继承的方法

此类从以下接口继承方法:

  • java.awt.event.EventListener

FocusListener 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

FocusAdapter()

类方法

S.N.方法和描述
1

void focusGained(FocusEvent e)

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

2

focusLost(FocusEvent e)

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

继承的方法

此类从以下类继承方法:

  • java.lang.Object

FocusAdapter 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

KeyAdapter()

类方法

S.N.方法 &描述
1

void keyPressed(KeyEvent e)

按下某个键时调用。

2

void keyReleased(KeyEvent e)

释放某个键时调用。

3

void keyTyped(KeyEvent e)

输入某个键时调用。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

KeyAdapter 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

MouseAdapter()

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

MouseMotionAdapter()

类方法

S.N.方法 &描述
1

void mouseDragged(MouseEvent e)

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

2

void mouseMoved(MouseEvent e)

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

继承的方法

此类从以下类继承方法:

  • java.lang.Object

MouseMotionAdapter 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

WindowAdapter()

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\gui\AwtAdapterDemo.java

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

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

验证以下输出

AWT WindowAdapter

AWT 布局

简介

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

布局管理器

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

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

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

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

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

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

AWT LayoutManager 接口

简介

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

类声明

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

public interface LayoutManager

接口方法

S.N.方法 &描述
1

void addLayoutComponent(String name, Component comp)

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

2

void layoutContainer(Container parent)

布置指定的容器。

3

Dimension minimumLayoutSize(Container parent)

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

4

Dimension preferredLayoutSize(Container parent)

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

5

void removeLayoutComponent(Component comp)

从布局中移除指定组件。

AWT LayoutManager2 接口

简介

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

类声明

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

public interface LayoutManger2
    extends LayoutManager

接口方法

S.N.方法 &描述
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 -- PAGE_END 的同义词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 -- 西布局约束(容器左侧)。

类构造函数

S.N.构造函数 &描述
1

BorderLayout()

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

2

BorderLayout(int hgap, int vgap)

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

类方法

S.N.方法 &描述
1

void addLayoutComponent(Component comp, Object Constraints)

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

2

void addLayoutComponent(String name, Component comp)

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

3

int getHgap()

返回组件之间的水平间隙。

4

float getLayoutAlignmentX(Container parent)

返回对齐方式沿 x 轴。

5

float getLayoutAlignmentY(Container parent)

返回沿 y 轴的对齐方式。

6

int getVgap()

返回组件之间的垂直间隙。

7

void invalidateLayout(Container target)

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

8

void layoutContainer(Container target)

使用此边框布置容器参数布局。

9

Dimension maximumLayoutSize(Container target)

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

10

Dimension minimumLayoutSize(Container target)

使用此布局管理器确定目标容器的最小尺寸。

11

Dimension preferredLayoutSize(Container target)

根据容器中的组件,使用此布局管理器确定目标容器的首选尺寸。

12

void removeLayoutComponent(Component comp)

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

13

void setHgap(int hgap)

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

14

void setVgap(int vgap)

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

15

String toString()

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

继承的方法

此类从以下类继承方法:

  • java.lang.Object

BorderLayout 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

CardLayout()

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

2

CardLayout(int hgap, int vgap)

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

类方法

S.N.方法 &描述
1

void addLayoutComponent(Component comp, Object Constraints)

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

2

void addLayoutComponent(String name, Component comp)

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

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 示例

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

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	utorialspoint\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 -- 此值表示每行组件都应与容器方向的后边缘对齐,例如,在从左到右的方向中向右对齐。

类构造函数

S.N.构造函数 &描述
1

FlowLayout()

构造一个具有居中对齐和默认 5 个单位水平和垂直间隙的新 FlowLayout。

2

FlowLayout(int align)

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

3

FlowLayout(int align, int hgap, int vgap)

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

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

GridLayout()

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

2

GridLayout(int rows, int cols)

创建一个具有指定行数和列数的网格布局。

3

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

创建一个具有指定行数和列数的网格布局。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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 -- 此字段保存对行权重的覆盖。

类构造函数

S.N.构造函数 &描述
1GridBagLayout()

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

类方法

S.N.方法 &描述
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 约束,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 示例

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

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	utorialspoint\gui\AwtlayoutDemo.java

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

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

验证以下输出

AWT GridBagLayout

AWT 容器

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

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

  • 容器只能向自身添加组件。

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

AWT Container 容器类

简介

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

类声明

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

public class Container
    extends Component

类构造函数

S.N.构造函数 &描述
1

Container()

这将创建一个新的容器。

类方法

S.N.方法 &描述
1

Component add(Component comp)

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

2

Component add(Component comp, int index)

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

3

void add(Component comp, Object limits)

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

4

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

将指定的组件添加到此容器的指定位置,并指定约束索引。

5

Component add(String name, Component comp)

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

6

void addContainerListener(ContainerListener l)

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

7

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

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

8

void addNotify()

通过将此容器连接到本机屏幕资源。

9

void addPropertyChangeListener(PropertyChangeListener listener)

将 PropertyChangeListener 添加到侦听器列表。

10

void add Property Change Listener(String property Name, Property Change Listener listener)

将 PropertyChangeListener 添加到特定属性的侦听器列表。

11

void applyComponentOrientation(ComponentOrientation o)

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

12

boolean areFocusTraversalKeysSet(int id)

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

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

设置<AWTKeyStroke> getFocusTraversalKeys(int id)

返回此容器的给定遍历操作的焦点遍历键集。

28

FocusTraversalPolicy getFocusTraversalPolicy()

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

29

Insets getInsets()

确定此容器的插图,指示容器的大小边框。

30

LayoutManager getLayout()

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

31

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

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

32

Dimension getMaximumSize()

返回此容器的最大大小。

33

Dimension getMinimumSize()

返回此容器的最小大小。

34

Point getMousePosition(boolean allowChildren)

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

35

Dimension getPreferredSize()

返回此容器的首选大小。

36

Insets insets()

已弃用。从 JDK 1.1 版开始,由 getInsets() 取代。

37

void invalidate()

使容器无效。

38

boolean isAncestorOf(Component c)

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

39

boolean isFocusCycleRoot()

返回此容器是否为焦点遍历循环的根。

40

boolean isFocusCycleRoot(Container container)

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

41

boolean isFocusTraversalPolicyProvider()

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

42

boolean isFocusTraversalPolicySet()

返回是否已为此容器明确设置焦点遍历策略。

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

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

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

通过删除此容器与其本机屏幕资源的连接,使其无法显示。

61

void setComponentZOrder(Component comp, int index)

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

62

void setFocusCycleRoot(boolean focusCycleRoot)

设置此容器是否为焦点遍历循环的根。

63

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

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

64

void setFocusTraversalPolicy(FocusTraversalPolicy policy)

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

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

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

72

protected void verifyTree()

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

继承的方法

此类从以下类继承方法:

  • java.awt.Component

  • java.lang.Object

AWT Panel 类

简介

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

类声明

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

public class Panel
    extends Container
        implements Accessible

类构造函数

S.N.构造函数 &描述
1

Panel()

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

2

Panel(LayoutManager layout)

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

类方法

S.N.方法 &描述
1

void addNotify()

创建面板的对等体。

2

AccessibleContext getAccessibleContext()

获取与此面板关联的 AccessibleContext。

继承的方法

此类从以下类继承方法:

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Panel 示例

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

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	utorialspoint\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 替换。

类构造函数

S.N.构造函数 &描述
1

Frame()

构造一个初始不可见的 Frame 的新实例。

2

Frame(GraphicsConfiguration gc)

使用指定的 GraphicsConfiguration 构造一个新的、初始不可见的 Frame。

3

Frame(String title)

使用指定的标题构造一个新的、初始不可见的 Frame 对象。

4

Frame(String title, GraphicsConfiguration gc)

使用指定的标题和一个图形配置。

类方法

S.N.方法与说明
1

void addNotify()

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

2

AccessibleContext getAccessibleContext()

获取与此 Frame 关联的 AccessibleContext。

3

int getCursorType()

已弃用。从 JDK 1.1 版开始,由 Component.getCursor() 取代。

4

int getExtendedState()

获取此框架的状态。

5

static Frame[] getFrames()

返回此应用程序创建的所有框架的数组。

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

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

14

void remove(MenuComponent m)

从此框架中删除指定的菜单栏。

15

void removeNotify()

通过删除与本机屏幕的连接使此框架无法显示资源。

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 示例

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

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	utorialspoint\gui\AwtContainerDemo.java

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

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

验证以下输出

AWT Frame

AWT Window 类

简介

Window 是一个没有边框和菜单栏的顶级窗口。它使用 BorderLayout 作为默认布局管理器。

类声明

以下是 java.awt.Window 类的声明:

public class Window
    extends Container
        implements Accessible

类构造函数

S.N.构造函数 &描述
1

Window(Frame Owner)

构造一个新的、最初不可见的窗口,以指定的 Frame 作为其所有者。

2

Window(Window Owner)

构造一个新的、最初不可见的窗口,以指定的 Window 作为其所有者。

3

Window(Window Owner, GraphicsConfiguration gc)

构造一个新的、最初不可见的窗口,以指定的所有者 Window 和屏幕设备的 GraphicsConfiguration。

类方法

S.N.方法 &描述
1

void addNotify()

通过创建与其本机屏幕资源的连接使此窗口可显示。

2

void addPropertyChangeListener(PropertyChangeListener listener)

将 PropertyChangeListener 添加到侦听器列表。

3

void add Property ChangeListener(String property Name, Property Change Listener 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()

释放此窗口、其子组件及其所有拥有的资源所使用的所有本机屏幕资源子级。

12

AccessibleContext getAccessibleContext()

获取与此窗口关联的 AccessibleContext。

13

BufferStrategy getBufferStrategy()

返回此组件使用的 BufferStrategy。

14

boolean getFocusableWindowState()

返回此窗口是否可成为焦点窗口(如果它满足 isFocusableWindow 中列出的其他要求)。

15

Container getFocusCycleRootAncestor()

始终返回 null,因为 Windows 没有祖先;它们代表组件层次结构的顶部。

16

Component getFocusOwner()

如果此窗口获得焦点,则返回此窗口获得焦点的子组件;否则返回 null。

17

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

获取此窗口的焦点遍历键。

18

GraphicsConfiguration getGraphicsConfiguration()

此方法返回此窗口使用的 GraphicsConfiguration。

19

List<Image> getIconImages()

返回要显示为此窗口的图标的图像序列。

20

InputContext getInputContext()

获取此窗口的输入上下文。

21

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

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

22

Locale getLocale()

如果已设置语言环境,则获取与此窗口关联的 Locale 对象。

23

Dialog.ModalExclusionType getModalExclusionType()

返回此窗口的模式排除类型。

24

Component getMostRecentFocusOwner()

返回此窗口的子组件,该子组件将当此窗口获得焦点时获得焦点。

25

Window[] getOwnedWindows()

返回一个包含此窗口当前拥有的所有窗口的数组。

26

Window getOwner()

返回此窗口的所有者。

27

static Window[] getOwnerlessWindows()

返回此应用程序创建的所有没有所有者的窗口的数组。

28

Toolkit getToolkit()

返回此框架的工具包。

29

String getWarningString()

获取此窗口显示的警告字符串。

30

WindowFocusListener[] getWindowFocusListeners()

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

31

WindowListener[] getWindowListeners()

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

32

static Window[] getWindows()

返回此应用程序创建的所有窗口(包括拥有的和无拥有的)的数组。

33

WindowStateListener[] getWindowStateListeners()

返回此窗口上注册的所有窗口状态侦听器的数组。

34

void hide()

已弃用。从 JDK 1.5 版开始,由 setVisible(boolean) 取代。

35

boolean isActive()

返回此窗口是否处于活动状态。

36

boolean isAlwaysOnTop()

返回此窗口是否为始终在顶部的窗口。

37

boolean isAlwaysOnTopSupported()

返回此窗口是否支持始终在顶部模式。

38

boolean isFocusableWindow()

返回此窗口是否可以成为焦点窗口,即此窗口或其任何子组件是否可以成为焦点所有者。

39

boolean isFocusCycleRoot()

始终返回 true,因为所有窗口都必须是焦点遍历循环的根。

40

boolean isFocused()

返回此窗口是否已获得焦点。

41

boolean isLocationByPlatform()

如果此窗口下次出现在本机窗口系统的默认位置,则返回 true可见。

42

boolean isShowing()

检查此窗口是否显示在屏幕上。

43

void pack()

使此窗口的大小适合其子组件的首选大小和布局。

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

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

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)

设置此窗口是否可以成为焦点窗口(如果它满足 isFocusableWindow 中概述的其他要求)。

60

void setFocusCycleRoot(boolean focusCycleRoot)

不执行任何操作,因为窗口必须始终是焦点遍历循环的根。

61

void setIconImage(Image image)

设置要显示为此窗口的图标的图像。

62

void setIconImages(List<? extends Image>图标)

设置要显示为此窗口图标的图像序列。

63

void setLocationByPlatform(boolean locationByPlatform)

设置此窗口下次可见时是否应出现在本机窗口系统的默认位置或当前位置(由 getLocation 返回)。

64

void setLocationRelativeTo(Component c)

设置窗口相对于指定组件的位置。

65

void setMinimumSize(Dimension minimumSize)

将此窗口的最小尺寸设置为常量值。

66

void setModalExclusionType(Dialog.ModalExclusionType rejectionType)

指定此窗口的模式排除类型。

67

void setSize(Dimension d)

调整此组件的大小,使其宽度为 d.width,高度为 d.height。

68

void setSize(int width, int height)

调整此组件的大小,使其宽度为 width,高度为 height。

69

void setVisible(boolean b)

根据参数 b 的值显示或隐藏此窗口。

70

void show()

已弃用。从 JDK 1.5 版开始,由 setVisible(boolean) 取代。

71

void toBack()

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

72

void toFront()

如果此窗口可见,则将此窗口置于前面,并可能使其成为焦点窗口。

继承的方法

此类从以下类继承方法:

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Window 示例

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

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	utorialspoint\gui\AwtContainerDemo.java

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

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

验证以下输出

AWT Window

AWT 菜单类

众所周知,每个顶层窗口都有一个与之关联的菜单栏。此菜单栏包含可供最终用户使用的各种菜单选项。此外,每个选项都包含选项列表,称为下拉菜单。Menu 和 MenuItem 控件是 MenuComponent 类的子类。

菜单层次结构

AWT 菜单层次结构

AWT MenuComponent 类

简介

MenuComponent 是一个抽象类,是所有菜单相关组件的超类。

类声明

以下是 java.awt.MenuComponent 类的声明:

public abstract class MenuComponent
    extends Object
        implements Serializable

类构造函数

S.N.构造函数 &描述
1

MenuComponent()

创建一个 MenuComponent。

类方法

void dispatchEvent(AWTEvent e)
S.N.方法 &描述
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

类构造函数

S.N.构造函数 &描述
1

MenuBar()

创建一个新的菜单栏。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

MenuItem()

构造一个带有空标签且没有键盘快捷键的新 MenuItem。

2

MenuItem(String label)

构造一个带有指定标签且没有键盘快捷键的新 MenuItem。

3

MenuItem(String label, MenuShortcut s)

创建一个带有关联键盘快捷键的菜单项。

类方法

S.N.方法与说明
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 示例

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

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	utorialspoint\gui\AWTMenuDemo.java

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

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

Verify the following output. (Click on File Menu. Select any menu item.)

AWT MenuItem

AWT Menu 菜单类

简介

Menu 类表示从菜单栏部署的下拉菜单组件。

类声明

以下是 java.awt.Menu 类的声明:

public class Menu
    extends MenuItem
        implements MenuContainer, Accessible

类构造函数

S.N.构造函数 &描述
1

Menu()

构造一个带有空标签的新菜单。

2

Menu(String label)

构造一个带有指定标签的新菜单。

3

Menu(String label, boolean teaOff)

构造一个带有指定标签的新菜单,指示菜单是否可以撕下。

类方法

S.N.方法与说明
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()

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

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

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 示例

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

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	utorialspoint\gui\AWTMenuDemo.java

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

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

验证以下输出。(单击文件菜单。)

AWT 菜单

AWT CheckboxMenuItem 类

简介

CheckboxMenuItem 类表示可包含在菜单中的复选框。选择菜单中的复选框可将控件的状态从 on 更改为 off 或从 off 更改为 on

类声明

以下是 java.awt.CheckboxMenuItem 类的声明:

public class CheckboxMenuItem
    extends MenuItem
        implements ItemSelectable, Accessible

类构造函数

S.N.构造函数 &描述
1

CheckboxMenuItem()

创建一个带有空标签的复选框菜单项。

2

CheckboxMenuItem(label)

创建一个带有指定标签的复选框菜单项。

3

CheckboxMenuItem(label, boolean state)

创建一个带有指定标签和状态的复选框菜单项。

类方法

S.N.方法& 描述
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()

确定此复选框菜单项的状态是"开"还是"关"。

8

param()

返回表示此状态的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 示例

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

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(

[] 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	utorialspoint\gui\AWTMenuDemo.java

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

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

Verify the following output. (Click on File Menu. Unselect "Show About" menu item.)

AWT CheckboxMenuItem

AWT PopupMenu 类

简介

弹出菜单表示可以在组件内指定位置动态弹出的菜单。

类声明

以下是 java.awt.PopupMenu 类的声明:

public class CheckboxMenuItem
    extends MenuItem
        implements ItemSelectable, Accessible

类构造函数

S.N.构造函数 &描述
1

PopupMenu()

创建一个具有空名称的新弹出菜单。

2

PopupMenu(String label)

创建一个具有指定名称的新弹出菜单。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\gui\AWTMenuDemo.java

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

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

Verify the following output. (Click in the middle on the screen.)

AWT PopupMenu

AWT 图形类

图形控件允许应用程序在组件或图像上绘图。

图形控件

Sr. No.控件 &描述
1

Graphics

它是所有图形上下文的顶级抽象类。

2

Graphics2D

它是 Graphics 类的子类,可提供对几何图形、坐标变换、颜色管理和文本布局的更复杂控制。

3

Arc2D

Arc2D 是所有存储由框架矩形、起始角度、角度范围(弧的长度)和闭包类型(OPEN、CHORD 或 PIE)。

4

CubicCurve2D

CubicCurve2D 类是所有存储 2D 三次曲线段的对象的抽象超类,它定义 (x,y) 坐标空间中的三次参数曲线段。

5

Ellipse2D

Ellipse2D 是所有存储 2D 椭圆的对象的抽象超类,它描述由框架定义的椭圆矩形。

6

Rectangle2D

Rectangle2D 类是所有存储 2D 矩形的对象的抽象超类,它描述由位置 (x,y) 和尺寸 (w x h) 定义的矩形。

7

QuadCurve2D

QuadCurve2D 类是所有存储 2D 二次曲线段的对象的抽象超类,它描述 (x,y) 坐标空间中的二次参数曲线段。

8

Line2D

此 Line2D 表示 (x,y) 坐标空间中的线段。

9

Font

Font 类表示字体,用于以可见的方式呈现文本。

10

Color

Color 类用于封装默认 sRGB 颜色空间中的颜色或由 ColorSpace 标识的任意颜色空间中的颜色。

11

BasicStroke

BasicStroke 类为图形基元的轮廓定义了一组基本的渲染属性,这些属性通过将其 Stroke 属性设置为此 BasicStroke 的 Graphics2D 对象进行渲染。

AWT Graphics 类

简介

Graphics 类是所有图形上下文的抽象超类,允许应用程序绘制到可在各种设备上实现的组件上,也可以绘制到屏幕外的图像上。

Graphics 对象封装了 Java 支持的基本渲染操作所需的所有状态信息。状态信息包括以下属性。

  • 要在其上进行绘制的 Component 对象。

  • 用于渲染和剪辑坐标的平移原点。

  • 当前剪辑。

  • 当前颜色。

  • 当前字体。

  • 当前逻辑像素操作函数。

  • 当前 XOR 交替颜色

类声明

以下是 java.awt.Graphics 类的声明:

public abstract class Graphics
    extends Object

类构造函数

S.N.构造函数和说明
1

Graphics() ()

构造一个新的 Graphics 对象。

类方法

S.N.方法和说明描述
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)

绘制指定矩形的 3-D 高亮轮廓。

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)

绘制一个 3-D 突出显示的矩形,其中填充当前颜色。

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 Translation(int x, int y)

将图形上下文的原点平移到当前坐标系中的点 (x, y)。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

Graphics 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

Graphics2D()

构造一个新的 Graphics2D 对象。

类方法

S.N.方法 &描述
1

abstract void addRenderingHints(Map<?,?> hints)

为渲染算法设置任意数量的首选项的值。

2

abstract void clip(Shape s)

将当前 Clip 与指定 Shape 的内部相交,并将 Clip 设置为结果交集。

3

abstract void draw(Shape s)

使用当前 Graphics2D 上下文的设置描边 Shape 的轮廓。

4

void draw3DRect(int x, int y, int width, int height, boolean raised)

绘制指定矩形的 3-D 高亮轮廓。

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。

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 上下文中的当前文本属性状态

13

abstract void drawString(String str, int x, int y)

使用 Graphics2D 上下文中的当前文本属性状态,呈现指定字符串的文本。

14

abstract void fill(Shape s)

使用 Graphics2D 上下文的设置填充 Shape 的内部。

15

void fill3DRect(int x, int y, int width, int height, boolean raised)

绘制一个用当前颜色填充的 3-D 高亮矩形。

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 sheath(double shx, double shy)

将当前 Graphics2D Transform 与剪切变换连接起来。

37

abstract void transform(AffineTransform Tx)

根据规则last-specified-first-applied,用此 Graphics2D 中的 Transform 组合一个 AffineTransform 对象。

38

abstract void Translation(double tx, double ty)

将当前 Graphics2D Transform 与平移变换连接起来。

39

abstract void Translation(int x, int y)

将 Graphics2D 上下文的原点平移到当前坐标系中的点 (x, y)。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

Graphics2D 示例

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

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	utorialspoint\gui\AWTGraphicsDemo.java

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

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

验证以下输出

AWT Graphics2D

AWT Arc2D 类

简介

Arc2D 类是所有存储由框架矩形、起始角度、角度范围(弧的长度)和闭包类型(OPEN、CHORD 或 PIE)定义的 2D 弧的对象的超类。

类声明

以下是 java.awt.Arc2D 类的声明:

public abstract class Arc2D
    extends RectangularShape

字段

以下是 java.awt.geom.Arc2D 类的字段:

  • static int CHORD -- 通过绘制闭合的弧的闭包类型从圆弧段的起点到圆弧段的终点绘制直线段。

  • static int OPEN -- 开圆弧的闭包类型,没有连接圆弧段两端的路径段。

  • static int PIE -- 通过从圆弧段的起点到整个椭圆的中心再从该点到圆弧段的终点绘制直线段来闭合圆弧。

类构造函数

S.N.构造函数 &描述
1

protected Arc2D(int type)

这是一个抽象类,不能直接实例化。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1protected CubicCurve2D()

这是一个抽象类,不能直接实例化。

类方法

S.N.方法 &描述
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)

将此曲线的端点和控制点的位置设置为指定数组中指定偏移量的双精度坐标。

31abstract 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 resolveCubic(double[] eqn)

求解系数在 eqn 数组中的三次方程,并将非复数根放回同一数组中,返回根的数量。

35

static int resolveCubic(double[] eqn, double[] res)

求解三次方程,其系数在 eqn 数组中,并将非复根放入 res 数组中,返回根的数量。

36

void subdivide(CubicCurve2D left, CubicCurve2D right)

细分此三次曲线,并将得到的两条细分曲线存储到左曲线和右曲线参数中。

37

static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)

细分 src 参数指定的三次曲线,并将得到的两条细分曲线存储到左曲线和右曲线中参数。

38

static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)

将存储在 src 数组中索引 srcoff 到 (srcoff + 7) 处的坐标指定的三次曲线细分,并将得到的两个细分曲线存储到相应索引处的两个结果数组中。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

CubicCurve2D 示例

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

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

Compile the program using command prompt. Go to D:/ > AWT

and type the following command.

D:\AWT>javac com	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1

protected Ellipse2D()

这是一个抽象类,不能直接实例化。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\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 上方的位掩码。

类构造函数

S.N.构造函数 &描述
1

protected Rectangle2D()

这是一个抽象类,无法直接实例化。

类方法

S.N.方法 &描述
1

void add(double newx, double newy)

向此 Rectangle2D 添加由双精度参数 newx 和 newy 指定的点。

2

void add(Point2D pt)

向此 Rectangle2D 添加 Point2D 对象 pt。

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

返回比 getBounds 方法更高精度和更准确的 Shape 边界框。

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 的内部相交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 的位置和大小设置为指定的 double 值。

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

Rectangle2D 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数 &描述
1protected QuadCurve2D() ()

这是一个抽象类,不能直接实例化。

类方法

S.N.方法 &描述
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()

返回起点。

17abstract Point2D getP2()

返回终点。

18

PathIterator getPathIterator(AffineTransform at)

返回定义此 QuadCurve2D 形状边界的迭代对象。

19

PathIterator getPathIterator(AffineTransform at, double flatness)

返回定义此 QuadCurve2D 扁平形状边界的迭代对象。

20

abstract double getX1()

以 double in 形式返回起点的 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 solvedQuadratic(double[] eqn)

求解系数在 eqn 数组中的二次方程,并将非复数根放回同一数组中,返回根的数量。

32

static int solvedQuadratic(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,并将得到的两条细分曲线存储到左曲线和右曲线参数中。

35

static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)

细分 src 参数指定的二次曲线,并将得到的两条细分曲线存储到左曲线和右曲线参数中。

继承的方法

此类从以下类继承方法:

  • java.lang.Object

QuadCurve2D 示例

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

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	utorialspoint\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

类构造函数

S.N.构造函数和说明
1

protected Line2D() ()

这是一个抽象类,不能直接实例化。

类方法

S.N.方法和描述
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()

以 double 形式返回起点的 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 relationCCW(double px, double py)

返回指定点 (px,py) 相对于此线段的位置的指示器。

33

static int relationCCW(double x1, double y1, double x2, double y2, double px, double py)

返回指定点 (px,py) 相对于线段的位置的指示器从 (x1,y1) 到 (x2,y2)。

34

int relationCCW(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 示例

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

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	utorialspoint\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 -- 在 Devanigiri 和类似脚本中布局文本时使用的基线。

  • static int ITALIC -- 斜体样式常量。

  • static int LAYOUT_LEFT_TO_RIGHT -- 一个用于 layoutGlyphVector 的标志,指示文本是从左到右的,由 Bidi 分析确定。

  • static int LAYOUT_NO_LIMIT_CONTEXT -- 一个给 layoutGlyphVector 的标志,表示不应检查指定限制之后的字符数组中的文本。

  • static int LAYOUT_NO_START_CONTEXT -- 一个给 layoutGlyphVector 的标志,表示不应检查指定开始之前的字符数组中的文本。

  • static int LAYOUT_RIGHT_TO_LEFT -- 一个给 layoutGlyphVector 的标志,表示文本是由 Bidi 分析确定的从右到左的。

  • 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 类型的字体资源。

类构造函数

S.N.构造函数 &描述
1

protected Font() ()

从指定字体创建新的 Font。

2

Font(Map<? extends AttributedCharacterIterator.Attribute,?> properties)

从指定字体创建新的 Font。

3

Font(String name, int style, int size)

从指定字体创建新的 Font。

类方法

S.N.方法 &描述
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 decrypt(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,?> properties)

返回适合属性的 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)

返回使用指定 String 和 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()

返回此字体中的字形数量。

40

java.awt.peer.FontPeer getPeer()

已弃用。字体渲染现在与平台无关。

41

String getPSName()

返回此字体的后记名称。

42

int getSize()

返回此字体的点大小,四舍五入为整数。

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 示例

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

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	utorialspoint\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 -- The color black.

  • static Color BLACK -- The color black.

  • static Color blue -- The color blue.

  • static Color BLUE -- The color blue.

  • static Color cyan -- The color cyan.

  • static Color CYAN -- The color cyan.

  • static Color DARK_GRAY -- The color dark gray.

  • static Color darkGray -- The color dark gray.

  • static Color gray -- The color gray.

  • static Color GRAY -- The color gray.

  • static Color green -- The color green.

  • static Color GREEN -- The color green.

  • static Color LIGHT_GRAY -- The color light gray.

  • static Color lightGray -- The color light gray.

  • static Color magenta -- The color magenta.

  • static Color MAGENTA -- The color magenta.

  • static Color orange -- The color orange.

  • static Color ORANGE -- The color orange.

  • static Color pink -- The color pink.

  • static Color PINK -- The color pink.

  • static Color red -- The color red.

  • static Color RED -- The color red.

  • static Color white -- The color white.

  • static Color WHITE -- The color white.

  • static Color yellow -- The color yellow.

  • static Color YELLOW -- The color yellow.

类构造函数

S.N.构造函数 &描述
1

Color(ColorSpace cspace, float[] components, float alpha)

使用浮点数组中指定的颜色分量和指定的 alpha 在指定的 ColorSpace 中创建颜色。

2

Color(float r, float g, float b)

使用范围 (0.0 - 1.0) 内指定的红色、绿色和蓝色值创建不透明的 sRGB 颜色。

3

Color(float r, float g, float b, float a)

使用范围 (0.0 - 1.0)。

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 中的蓝色成分组成0-7。

6

Color(int r, int g, int b)

使用指定的红色、绿色和蓝色值在范围 (0 - 255) 内创建不透明的 sRGB 颜色。

7

Color(int r, int g, int b, int a)

使用指定的红色、绿色、蓝色和 alpha 值在范围 (0 - 255) 内创建 sRGB 颜色。

类方法

默认的 sRGB 空间。

S.N.方法与描述
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 decrypt(String nm)

将字符串转换为整数并返回指定的不透明颜色。

5

boolean equals(Object obj)

确定另一个对象是否等于此颜色。

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)

返回一个浮点数组,该数组仅包含默认 sRGB 颜色空间中 Color 的颜色分量。

21

float[] getRGBComponents(float[] compArray)

返回一个浮点数组,该数组包含默认 sRGB 颜色空间中 Color 的颜色和 alpha 分量。

22

int getTransparency()

返回此颜色的透明度模式。

23

int hashCode()

计算此颜色的哈希码。

24

static int HSBtoRGB(float hue, float saturation, float bright)

将 HSB 模型指定的颜色成分转换为默认 RGB 模型的一组等效值。

25

static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals)

将颜色的成分(由默认 RGB 模型指定)转换为色调、饱和度和亮度的等效值集,这三个值是 HSB 模型的三个成分。

26

String toString()

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

继承的方法

此类从以下类继承方法:

  • java.lang.Object

Color 示例

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

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	utorialspoint\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 -- 通过在半径为线的一半处对角进行圆化来连接路径段宽度。

类构造函数

S.N.构造函数 &描述
1

BasicStroke()

构造一个新的 BasicStroke,所有属性均使用默认值。

2

BasicStroke(float width)

构造一个具有指定线宽的实心 BasicStroke,并使用 cap 和 join 样式的默认值。

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。

类方法

S.N.方法 &描述
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 示例

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

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	utorialspoint\gui\AwtGraphicsDemo.java

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

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

验证以下输出

AWT BasicStroke