AWT 快速指南



圖形使用者介面

圖形使用者介面 (GUI) 透過一些圖形元件提供使用者互動。例如,我們底層的作業系統也透過視窗、框架、面板、按鈕、文字欄位、文字區域、列表框、組合框、標籤、複選框等提供 GUI。這些都稱為元件。使用這些元件,我們可以為應用程式建立互動式使用者介面。

GUI 對使用者觸發的事件做出響應並提供結果。GUI 完全基於事件。例如,單擊按鈕、關閉視窗、開啟視窗、在文字區域中輸入內容等。這些活動稱為事件。GUI 使終端使用者更容易使用應用程式。它也使它們更有趣。

基本術語

術語描述
元件元件是一個具有圖形表示的物件,可以顯示在螢幕上並與使用者互動。例如,圖形使用者介面的按鈕、複選框、列表和捲軸。

容器容器物件是一個可以包含其他元件的元件。新增到容器中的元件在一個列表中跟蹤。列表的順序將定義元件在容器內的前後堆疊順序。如果在將元件新增到容器時未指定索引,則它將新增到列表的末尾。

面板面板提供了一個空間,應用程式可以在其中附加任何其他元件,包括其他面板。

視窗視窗是在螢幕上顯示的矩形區域。在不同的視窗中,我們可以執行不同的程式並顯示不同的資料。視窗為我們提供了多工環境。視窗在構造時必須具有框架、對話方塊或另一個視窗作為其所有者。

框架框架是一個具有標題和邊框的頂級視窗。框架的大小包括為邊框指定的任何區域。框架封裝了視窗。它並具有標題欄、選單欄、邊框和調整大小的角。

畫布畫布元件表示螢幕上的一個空白矩形區域,應用程式可以在其上繪製。應用程式還可以從畫布元件的空白區域捕獲來自使用者的輸入事件。

基於 GUI 的應用程式示例

以下是一些基於 GUI 的應用程式示例。

  • 自動櫃員機 (ATM)

  • 航空售票系統

  • 火車站的資訊亭

  • 移動應用程式

  • 導航系統

GUI 相對於 CUI 的優勢

  • GUI 提供圖形圖示進行互動,而 CUI(字元使用者介面)提供簡單的基於文字的介面。

  • GUI 使應用程式更具娛樂性和趣味性,而 CUI 則沒有。

  • GUI 提供點選執行環境,而在 CUI 中,我們每次都必須為任務輸入命令。

  • 新使用者可以透過視覺指示輕鬆地與圖形使用者介面互動,但在字元使用者介面中則比較困難。

  • GUI 提供了許多對檔案系統和作業系統的控制,而在 CUI 中,您必須使用難以記住的命令。

  • GUI 中的視窗概念允許使用者同時檢視、操作和控制多個應用程式,而在 CUI 中,使用者一次只能控制一項任務。

  • GUI 提供多工環境,CUI 也提供,但 CUI 沒有 GUI 提供的那麼輕鬆。

  • 使用 GUI 更容易控制和導航作業系統,這在命令使用者介面中變得非常緩慢。GUI 可以輕鬆自定義。

環境設定

本節指導您如何在機器上下載和設定 Java。請按照以下步驟設定環境。

Java SE 可從以下連結免費獲取 下載 Java。因此,您可以根據您的作業系統下載一個版本。

按照說明下載 Java 並執行.exe檔案以在您的機器上安裝 Java。在您的機器上安裝 Java 後,您需要設定環境變數以指向正確的安裝目錄

為 Windows 2000/XP 設定路徑

假設您已將 Java 安裝在c:\Program Files\java\jdk目錄中

  • 右鍵單擊“我的電腦”,然後選擇“屬性”。

  • 在“高階”選項卡下單擊“環境變數”按鈕。

  • 現在更改“Path”變數,使其還包含 Java 可執行檔案的路徑。例如,如果路徑當前設定為“C:\WINDOWS\SYSTEM32”,則將您的路徑更改為“C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin”。

為 Windows 95/98/ME 設定路徑

假設您已將 Java 安裝在c:\Program Files\java\jdk目錄中

  • 編輯“C:\autoexec.bat”檔案,並在末尾新增以下行

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

為 Linux、UNIX、Solaris、FreeBSD 設定路徑

環境變數 PATH 應設定為指向 Java 二進位制檔案已安裝的位置。如果您在執行此操作時遇到問題,請參閱您的 shell 文件。

例如,如果您使用bash作為您的 shell,則您將在“.bashrc”的末尾新增以下行:export PATH=/path/to/java:$PATH

流行的 Java 編輯器

要編寫 Java 程式,您需要一個文字編輯器。市場上甚至還有更多更復雜的 IDE 可用。但目前,您可以考慮以下之一

  • 記事本:在 Windows 機器上,您可以使用任何簡單的文字編輯器,如記事本(本教程推薦)、TextPad。

  • Netbeans:是一個開源且免費的 Java IDE,可以從 http://www.netbeans.org/index.html 下載。

  • Eclipse:也是一個由 Eclipse 開源社群開發的 Java IDE,可以從 http://www.eclipse.org/ 下載。

AWT 控制元件

每個使用者介面都考慮以下三個主要方面

  • UI 元素:這些是使用者最終看到並與其互動的核心視覺元素。GWT 提供了大量廣泛使用且常見的元素,從基本到複雜,我們將在本教程中介紹。

  • 佈局:它們定義了 UI 元素如何在螢幕上組織,併為 GUI(圖形使用者介面)提供最終的外觀和感覺。這部分將在佈局章節中介紹。

  • 行為:這些是使用者與 UI 元素互動時發生的事件。這部分將在事件處理章節中介紹。

UI classes

每個 AWT 控制元件都繼承自 Component 類中的屬性。

AWT Component 類

簡介

Component是 AWT 非選單使用者介面控制元件的抽象基類。Component 表示具有圖形表示的物件。

類宣告

以下是java.awt.Component類的宣告

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

欄位

以下是java.awt.Component類的欄位

  • static float BOTTOM_ALIGNMENT -- getAlignmentY 的易用性常量。

  • static float CENTER_ALIGNMENT -- getAlignmentY 和 getAlignmentX 的易用性常量。

  • static float LEFT_ALIGNMENT -- getAlignmentX 的易用性常量。

  • static float RIGHT_ALIGNMENT -- getAlignmentX 的易用性常量。

  • static float TOP_ALIGNMENT -- getAlignmentY() 的易用性常量。

類建構函式

序號建構函式和描述
1

protected Component()

這將建立一個新的 Component。

類方法

序號方法和描述
1

boolean action(Event evt, Object what)

已棄用。從 JDK 版本 1.1 開始,應將此元件註冊為觸發操作事件的元件上的 ActionListener。

2

void add(PopupMenu popup)

將指定的彈出選單新增到元件。

3

void addComponentListener(ComponentListener l)

新增指定的元件監聽器以接收來自此元件的元件事件。

4

void addFocusListener(FocusListener l)

新增指定的焦點監聽器以接收來自此元件的焦點事件,當此元件獲得輸入焦點時。

5

void addHierarchyBoundsListener(HierarchyBoundsListener l)

新增指定的層次結構邊界監聽器以接收來自此元件的層次結構邊界事件,當此容器所屬的層次結構發生更改時。

6

void addHierarchyListener(HierarchyListener l)

新增指定的層次結構監聽器以接收來自此元件的層次結構更改事件,當此容器所屬的層次結構發生更改時。

7

void addInputMethodListener(InputMethodListener l)

新增指定的輸入方法監聽器以接收來自此元件的輸入方法事件。

8

void addKeyListener(KeyListener l)

新增指定的鍵監聽器以接收來自此元件的鍵事件。

9

void addMouseListener(MouseListener l)

新增指定的滑鼠監聽器以接收來自此元件的滑鼠事件。

10

void addMouseMotionListener(MouseMotionListener l)

新增指定的滑鼠移動監聽器以接收來自此元件的滑鼠移動事件。

11

void addMouseWheelListener(MouseWheelListener l)

新增指定的滑鼠滾輪監聽器以接收來自此元件的滑鼠滾輪事件。

12

void addNotify()

透過將其連線到本機螢幕資源來使此 Component 可顯示。

13

void addPropertyChangeListener(PropertyChangeListener listener)

將 PropertyChangeListener 新增到監聽器列表。

14

void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

為特定屬性將 PropertyChangeListener 新增到監聽器列表。

15

void applyComponentOrientation(ComponentOrientation orientation)

設定此元件及其包含的所有元件的 ComponentOrientation 屬性。

16

boolean areFocusTraversalKeysSet(int id)

返回是否已為此 Component 明確定義給定焦點遍歷操作的焦點遍歷鍵集。

17

int checkImage(Image image, ImageObserver observer)

返回指定影像的螢幕表示的構造狀態。

18

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

返回指定影像的螢幕表示的構造狀態。

19

boolean contains(int x,int y)

檢查此元件是否“包含”指定的點,其中 x 和 y 定義為相對於此元件的座標系。

20

boolean contains(Point p)

檢查此元件是否“包含”指定的點,其中點的 x 和 y 座標定義為相對於此元件的座標系。

21

Image createImage(ImageProducer producer)

從指定的影像生產者建立影像。

22

Image createImage(int width,int height)

建立一個離屏可繪製圖像,用於雙緩衝。

23

VolatileImage createVolatileImage(int width,int height)

建立一個易失性離屏可繪製圖像,用於雙緩衝。

24

VolatileImage createVolatileImage(int width,int height, ImageCapabilities caps)

建立一個具有給定功能的易失性離屏可繪製圖像。

25

void deliverEvent(Event e)

已棄用。從 JDK 版本 1.1 開始,由 dispatchEvent(AWTEvent e) 替換。

26

void disable()

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

27

protected void disableEvents(long eventsToDisable)

禁止將由指定事件掩碼引數定義的事件傳遞到此元件。

28

void dispatchEvent(AWTEvent e)

將事件分派到此元件或其子元件之一。

29

void doLayout()

提示佈局管理器佈局此元件。

30

void enable()

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

31

void enable(boolean b)

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

32

protected void enableEvents(long eventsToEnable)

啟用將由指定事件掩碼引數定義的事件傳遞到此元件。

33

void enableInputMethods(boolean enable)

啟用或停用此元件的輸入法支援。

34

protected void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)

支援為布林屬性報告繫結屬性更改。

35

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

報告繫結屬性更改。

36

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

報告繫結屬性更改。

37

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

報告繫結屬性更改。

38

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

報告繫結屬性更改。

39

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

報告繫結屬性更改。

40

protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)

支援為物件屬性報告繫結屬性更改。

41

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

報告繫結屬性更改。

42

AccessibleContext getAccessibleContext()

獲取與此元件關聯的 AccessibleContext。

43

float getAlignmentX()

返回沿 x 軸的對齊方式。

44

float getAlignmentY()

返回沿 y 軸的對齊方式。

45

Color getBackground()

獲取此元件的背景顏色。

46

int getBaseline(int width,int height)

返回基線。

47

Component.BaselineResizeBehavior getBaselineResizeBehavior()

返回一個列舉,指示元件的基線在大小發生變化時如何變化。

48

Rectangle getBounds()

以 Rectangle 物件的形式獲取此元件的邊界。

49

Rectangle getBounds(Rectangle rv)

將此元件的邊界儲存到返回值 rv 中並返回 rv。

50

ColorModel getColorModel()

獲取用於在輸出裝置上顯示元件的 ColorModel 例項。

51

Component getComponentAt(int x,int y)

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

52

Component getComponentAt(Point p)

返回包含指定點的元件或子元件。

53

ComponentListener[] getComponentListeners()

返回在此元件上註冊的所有元件偵聽器的陣列。

54

ComponentOrientation getComponentOrientation()

檢索用於對齊此元件內元素或文字的語言敏感方向。

55

Cursor getCursor()

獲取在元件中設定的游標。

56

DropTarget getDropTarget()

獲取與此元件關聯的 DropTarget。

57

Container getFocusCycleRootAncestor()

返回此元件的焦點遍歷迴圈的焦點迴圈根容器。

58

FocusListener[] getFocusListeners()

返回在此元件上註冊的所有焦點偵聽器的陣列。

59

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

返回此元件給定遍歷操作的焦點遍歷鍵的 Set。

60

boolean getFocusTraversalKeysEnabled()

返回此元件是否啟用了焦點遍歷鍵。

61

Font getFont()

獲取此元件的字型。

62

FontMetrics getFontMetrics(Font font)

獲取指定字型的字型度量。

63

Color getForeground()

獲取此元件的前景色。

64

Graphics getGraphics()

為此元件建立圖形上下文。

65

GraphicsConfiguration getGraphicsConfiguration()

獲取與此元件關聯的 GraphicsConfiguration。

66

int getHeight()

返回此元件的當前高度。

67

HierarchyBoundsListener[] getHierarchyBoundsListeners()

返回在此元件上註冊的所有層次結構邊界偵聽器的陣列。

68

HierarchyListener[] getHierarchyListeners()

返回在此元件上註冊的所有層次結構偵聽器的陣列。

69

boolean getIgnoreRepaint()

70

InputContext getInputContext()

獲取此元件用於處理與輸入法通訊的輸入上下文,當在此元件中輸入文字時。

71

InputMethodListener[] getInputMethodListeners()

返回在此元件上註冊的所有輸入法偵聽器的陣列。

72

InputMethodRequests getInputMethodRequests()

獲取輸入法請求處理程式,該處理程式支援來自此元件的輸入法的請求。

73

KeyListener[] getKeyListeners()

返回在此元件上註冊的所有鍵偵聽器的陣列。

74

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

返回當前在此元件上註冊為 FooListeners 的所有物件的陣列。

75

Locale getLocale()

獲取此元件的區域設定。

76

Point getLocation()

以指定元件左上角的點的形式獲取此元件的位置。

77

Point getLocation(Point rv)

將此元件的 x,y 原點儲存到返回值 rv 中並返回 rv。

78

Point getLocationOnScreen()

以指定元件左上角在螢幕座標空間中的點的形式獲取此元件的位置。

79

Dimension getMaximumSize()

獲取此元件的最大尺寸。

80

Dimension getMinimumSize()

獲取此元件的最小尺寸。

81

MouseListener[] getMouseListeners()

返回在此元件上註冊的所有滑鼠偵聽器的陣列。

82

MouseMotionListener[] getMouseMotionListeners()

返回在此元件上註冊的所有滑鼠移動偵聽器的陣列。

83

Point getMousePosition()

如果元件直接位於滑鼠指標下方,則返回滑鼠指標在此元件座標空間中的位置,否則返回 null。

84

MouseWheelListener[] getMouseWheelListeners()

返回在此元件上註冊的所有滑鼠滾輪偵聽器的陣列。

85

String getName()

獲取元件的名稱。

86

Container getParent()

獲取此元件的父元件。

87

java.awt.peer.ComponentPeer getPeer() 已過時。從 JDK 1.1 版本開始,程式不應直接操作對等體;已被 boolean isDisplayable() 方法取代。

88

Dimension getPreferredSize()

獲取此元件的首選尺寸。

89

PropertyChangeListener[] getPropertyChangeListeners()

返回在此元件上註冊的所有屬性更改偵聽器的陣列。

90

PropertyChangeListener[] getPropertyChangeListeners(String propertyName)

返回已與命名屬性關聯的所有偵聽器的陣列。

91

Dimension getSize()

以 Dimension 物件的形式返回此元件的尺寸。

92

Dimension getSize(Dimension rv) 將此元件的寬度/高度儲存到返回值 rv 中並返回 rv。

93

Toolkit getToolkit()

獲取此元件的工具包。

94

Object getTreeLock()

獲取此元件的鎖定物件(擁有執行緒同步監視器的物件)

用於 AWT 元件樹和佈局操作。

95

int getWidth()

返回此元件的當前寬度。

96

int getX()

返回元件原點的當前 x 座標。

97

int getY()

返回元件原點的當前 y 座標。

98

boolean gotFocus(Event evt, Object what)

已過時。從 JDK 1.1 版本開始,已被 processFocusEvent(FocusEvent) 方法取代。

.

99

boolean handleEvent(Event evt)

已過時。從 JDK 1.1 版本開始,已被 processEvent(AWTEvent) 方法取代。

100

boolean hasFocus()

如果此元件是焦點所有者,則返回 true。

101

void hide()

已過時。從 JDK 1.1 版本開始,已被 setVisible(boolean) 方法取代。

102

boolean imageUpdate(Image img,int infoflags,int x,int y,int w,int h)

當影像發生更改時重新繪製元件。

103

boolean inside(int x,int y)

已過時。從 JDK 1.1 版本開始,已被 contains(int, int) 方法取代。

104

void invalidate()

使此元件無效。

105

boolean isBackgroundSet()

返回是否已為此元件顯式設定背景顏色。

106

boolean isCursorSet()

返回是否已為此元件顯式設定游標。

107

boolean isDisplayable()

確定此元件是否可顯示。

108

boolean isDoubleBuffered()

如果此元件繪製到螢幕外影像(緩衝區)則返回 true

稍後將其複製到螢幕上。

109

boolean isEnabled()

確定此元件是否已啟用。

110

boolean isFocusable()

返回此元件是否可以獲得焦點。

111

boolean isFocusCycleRoot(Container container)

返回指定的容器是否是此元件的焦點遍歷迴圈的焦點迴圈根。

112

boolean isFocusOwner()

如果此元件是焦點所有者,則返回 true。

113

boolean isFocusTraversable()

已過時。從 1.4 版本開始,已被 isFocusable() 方法取代。

114

boolean isFontSet()

返回是否已為此元件顯式設定字型。

115

boolean isForegroundSet()

返回是否已為此元件顯式設定前景色。

116

boolean isLightweight()

輕量級元件沒有本機工具包對等體。

117

boolean isMaximumSizeSet()

如果最大尺寸已設定為非空值,則返回 true,否則返回 false。

118

boolean isMinimumSizeSet()

返回是否已使用非空值呼叫 setMinimumSize。

119

boolean isOpaque()

如果此元件完全不透明,則返回 true,預設情況下返回 false。

120

boolean isPreferredSizeSet()

如果首選尺寸已設定為非空值,則返回 true,否則返回 false。

121

boolean isShowing()

確定此元件是否顯示在螢幕上。

122

boolean isValid()

確定此元件是否有效。

123

boolean isVisible()

確定當其父元件可見時此元件是否應可見。

124

boolean keyDown(Event evt,int key)

已過時。從 JDK 1.1 版本開始,已被 processKeyEvent(KeyEvent) 方法取代。

125

boolean keyUp(Event evt,int key)

已過時。從 JDK 1.1 版本開始,已被 processKeyEvent(KeyEvent) 方法取代。

126

void layout()

已過時。從 JDK 1.1 版本開始,已被 doLayout() 方法取代。

127

void list()

將此元件的列表列印到標準系統輸出流 System.out。

128

void list(PrintStream out)

將此元件的列表列印到指定的輸出流。

129

void list(PrintStream out,int indent)

列印一個列表,從指定的縮排開始,到指定的列印流。

130

void list(PrintWriter out)

將列表列印到指定的列印寫入器。

131

void list(PrintWriter out,int indent)

從指定的縮排開始,將列表列印到指定的列印寫入器。

132

元件 locate(int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 getComponentAt(int, int) 替換。

133

點 location()

已棄用。從 JDK 版本 1.1 開始,由 getLocation() 替換。

134

boolean lostFocus(Event evt, Object what)

已棄用。從 JDK 版本 1.1 開始,由 processFocusEvent(FocusEvent) 替換。

135

boolean mouseDown(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseEvent(MouseEvent) 替換。

136

boolean mouseDrag(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseMotionEvent(MouseEvent) 替換。

137

boolean mouseEnter(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseEvent(MouseEvent) 替換。

138

boolean mouseExit(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseEvent(MouseEvent) 替換。

139

boolean mouseMove(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseMotionEvent(MouseEvent) 替換。

140

boolean mouseUp(Event evt,int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 processMouseEvent(MouseEvent) 替換。

141

void move(int x,int y)

已棄用。從 JDK 版本 1.1 開始,由 setLocation(int, int) 替換。

142

void nextFocus()

已棄用。從 JDK 版本 1.1 開始,由 transferFocus() 替換。

143

void paint(Graphics g)

繪製此元件。

144

void paintAll(Graphics g)

繪製此元件及其所有子元件。

145

boolean postEvent(Event e)

已棄用。從 JDK 版本 1.1 開始,由 dispatchEvent(AWTEvent) 替換。

146

boolean prepareImage(Image image,int width,int height, ImageObserver observer)

準備在指定寬度和高度的此元件上呈現影像。

147

void print(Graphics g)

列印此元件。

148

void printAll(Graphics g)

列印此元件及其所有子元件。

149

protectedvoid processComponentEvent(ComponentEvent e)

透過將元件事件分派給任何已註冊的 ComponentListener 物件,來處理在此元件上發生的元件事件。

150

protected void processEvent(AWTEvent e)

處理在此元件上發生的事件。

151

protected void processFocusEvent(FocusEvent e)

透過將焦點事件分派給任何已註冊的 FocusListener 物件,來處理在此元件上發生的焦點事件。

152

protected void processHierarchyBoundsEvent(HierarchyEvent e)

透過將層次結構邊界事件分派給任何已註冊的 HierarchyBoundsListener 物件,來處理在此元件上發生的層次結構邊界事件。

153

protected void processHierarchyEvent(HierarchyEvent e)

透過將層次結構事件分派給任何已註冊的 HierarchyListener 物件,來處理在此元件上發生的層次結構事件。

154

protectedvoid processInputMethodEvent(InputMethodEvent e)

透過將輸入法事件分派給任何已註冊的 InputMethodListener 物件,來處理在此元件上發生的輸入法事件。

155

protected void processKeyEvent(KeyEvent e)

透過將鍵盤事件分派給任何已註冊的 KeyListener 物件,來處理在此元件上發生的鍵盤事件。

156

protected void processMouseEvent(MouseEvent e)

透過將滑鼠事件分派給任何已註冊的 MouseListener 物件,來處理在此元件上發生的滑鼠事件。

157

protected void processMouseMotionEvent(MouseEvent e)

透過將滑鼠移動事件分派給任何已註冊的 MouseMotionListener 物件,來處理在此元件上發生的滑鼠移動事件。

158

protected void processMouseWheelEvent(MouseWheelEvent e)

透過將滑鼠滾輪事件分派給任何已註冊的 MouseWheelListener 物件,來處理在此元件上發生的滑鼠滾輪事件。

159

void remove(MenuComponent popup)

從元件中刪除指定的彈出選單。

160

void removeComponentListener(ComponentListener l)

移除指定的元件偵聽器,以便它不再接收來自此元件的元件事件。

161

void removeFocusListener(FocusListener l)

移除指定的焦點偵聽器,以便它不再接收來自此元件的焦點事件。

162

void removeHierarchyBoundsListener(HierarchyBoundsListener l)

移除指定的層次結構邊界偵聽器,以便它不再接收來自此元件的層次結構邊界事件。

163

void removeHierarchyListener(HierarchyListener l)

移除指定的層次結構偵聽器,以便它不再接收來自此元件的層次結構更改事件。

164

void removeInputMethodListener(InputMethodListener l)

移除指定的輸入法偵聽器,以便它不再接收來自此元件的輸入法事件。

165

void removeKeyListener(KeyListener l)

移除指定的鍵盤偵聽器,以便它不再接收來自此元件的鍵盤事件。

166

void removeMouseListener(MouseListener l)

移除指定的滑鼠偵聽器,以便它不再接收來自此元件的滑鼠事件。

167

void removeMouseMotionListener(MouseMotionListener l)

移除指定的滑鼠移動偵聽器,以便它不再接收來自此元件的滑鼠移動事件。

168

void removeMouseWheelListener(MouseWheelListener l)

移除指定的滑鼠滾輪偵聽器,以便它不再接收來自此元件的滑鼠滾輪事件。

169

void removeNotify()

透過銷燬其本機螢幕資源,使此元件不可顯示。

170

void removePropertyChangeListener(PropertyChangeListener listener)

從偵聽器列表中移除 PropertyChangeListener。

171

void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)

從特定屬性的偵聽器列表中移除 PropertyChangeListener。

172

void repaint()

重新繪製此元件。

173

void repaint(int x,int y,int width,int height)

重新繪製此元件的指定矩形。

174

void repaint(long tm)

重新繪製元件。

175

void repaint(long tm,int x,int y,int width,int height)

在 tm 毫秒內重新繪製此元件的指定矩形。

176

void requestFocus()

請求此元件獲取輸入焦點,並使此元件的頂級祖先成為聚焦視窗。

177

protected boolean requestFocus(boolean temporary)

請求此元件獲取輸入焦點,並使此元件的頂級祖先成為聚焦視窗。

178

boolean requestFocusInWindow()

如果此元件的頂級祖先已經是聚焦視窗,則請求此元件獲取輸入焦點。

179

protected boolean requestFocusInWindow(boolean temporary)

如果此元件的頂級祖先已經是聚焦視窗,則請求此元件獲取輸入焦點。

180

void reshape(int x,int y,int width,int height)

已棄用。從 JDK 版本 1.1 開始,由 setBounds(int, int, int, int) 替換。

181

void resize(Dimension d)

已棄用。從 JDK 版本 1.1 開始,由 setSize(Dimension) 替換。

182

void resize(int width,int height)

已棄用。從 JDK 版本 1.1 開始,由 setSize(int, int) 替換。

183

void setBackground(Color c)

設定此元件的背景顏色。

184

void setBounds(int x,int y,int width,int height)

移動並調整此元件的大小。

185

void setBounds(Rectangle r)

移動並調整此元件的大小,使其符合新的邊界矩形 r。

186

void setComponentOrientation(ComponentOrientation o)

設定用於對此元件內的元素或文字進行排序的語言敏感方向。

187

void setCursor(Cursor cursor)

將游標影像設定為指定的游標。

188

void setDropTarget(DropTarget dt)

將 DropTarget 與此元件關聯。

189

void setEnabled(boolean b)

根據引數 b 的值啟用或停用此元件。

190

void setFocusable(boolean focusable)

將此元件的可聚焦狀態設定為指定的值。

191

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

為此元件的給定遍歷操作設定焦點遍歷鍵。

192

void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled)

設定是否為此元件啟用焦點遍歷鍵。

193

void setFont(Font f)

設定此元件的字型。

194

void setForeground(Color c)

設定此元件的前景色。

195

void setIgnoreRepaint(boolean ignoreRepaint)

設定是否應忽略從作業系統接收到的繪製訊息。

196

void setLocale(Locale l)

設定此元件的區域設定。

197

void setLocation(int x,int y)

將此元件移動到新位置。

198

void setLocation(Point p)

將此元件移動到新位置。

199

void setMaximumSize(Dimension maximumSize)

將此元件的最大尺寸設定為常數值。

200

void setMinimumSize(Dimension minimumSize)

將此元件的最小尺寸設定為常數值。

201

void setName(String name)

將元件的名稱設定為指定的字串。

202

void setPreferredSize(Dimension preferredSize)

將此元件的首選尺寸設定為常數值。

203

void setSize(Dimension d)

調整此元件的大小,使其寬度為 d.width,高度為 d.height。

204

void setSize(int width,int height)

調整此元件的大小,使其寬度為 width,高度為 height。

205

void setVisible(boolean b)

根據引數 b 的值顯示或隱藏此元件。

206

void show()

已過時。從 JDK 1.1 版本開始,已被 setVisible(boolean) 方法取代。

207

void show(boolean b)

已過時。從 JDK 1.1 版本開始,已被 setVisible(boolean) 方法取代。

208

Dimension size()

已棄用。從 JDK 版本 1.1 開始,由 getSize() 替換。

209

String toString()

返回此元件及其值的字串表示形式。

210

void transferFocus()

將焦點轉移到下一個元件,就像此元件是焦點所有者一樣。

211

void transferFocusBackward()

將焦點轉移到上一個元件,就像此元件是焦點所有者一樣。

212

void transferFocusUpCycle()

將焦點向上轉移一個焦點遍歷迴圈。

213

void update(Graphics g)

更新此元件。

214

void validate()

確保此元件具有有效的佈局。

215

Rectangle bounds()

已棄用。從 JDK 版本 1.1 開始,由 getBounds() 替換。

216

protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent)

可能將要釋出的事件與現有事件合併。

217

protected String paramString()

返回表示此元件狀態的字串。

218

protected void firePropertyChange(String propertyName,int oldValue,int newValue)

支援為整數屬性報告繫結屬性更改。

219

Dimension preferredSize()

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize() 替換。

220

boolean prepareImage(Image image, ImageObserver observer)

準備在該元件上渲染影像。

221

Dimension minimumSize()

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize() 替換。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

AWT 標籤類

簡介

標籤是一個被動控制元件,因為它在使用者訪問時不會建立任何事件。標籤控制元件是 Label 的物件。標籤顯示一行只讀文字。但是,文字可以由應用程式程式設計師更改,但不能以任何方式由終端使用者更改。

類宣告

以下是 **java.awt.Label** 類的宣告

public class Label
   extends Component
      implements Accessible

欄位

以下是java.awt.Component類的欄位

  • **static int CENTER** -- 表示標籤應居中。

  • **static int LEFT** -- 表示標籤應左對齊。

  • **static int RIGHT** -- 表示標籤應右對齊。

類建構函式

序號建構函式和描述
1

Label()

構造一個空標籤。

2

Label(String text)

構造一個新的標籤,其中包含指定的文字字串,左對齊。

3

Label(String text, int alignment)

構造一個新的標籤,該標籤以指定的對齊方式顯示指定的文字字串。

類方法

序號方法和描述
1

void addNotify()

建立此標籤的對等體。

2

AccessibleContext getAccessibleContext()

獲取與此 Label 關聯的 AccessibleContext。

3

int getAlignment()

獲取此標籤的當前對齊方式。

4

String getText()

獲取此標籤的文字。

5

protected String paramString()

返回表示此 Label 狀態的字串。

6

void setAlignment(int alignment)

將此標籤的對齊方式設定為指定的對齊方式。

7

void setText(String text)

將此標籤的文字設定為指定的文字。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

標籤示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showLabelDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showLabelDemo(){
      headerLabel.setText("Control in action: Label");      

      Label label = new Label();
      label.setText("Welcome to TutorialsPoint AWT Tutorial.");
      label.setAlignment(Label.CENTER);
      label.setBackground(Color.GRAY);
      label.setForeground(Color.WHITE);
      controlPanel.add(label);
   
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Label

AWT 按鈕類

簡介

按鈕是一個控制元件元件,它有一個標籤,並在按下時生成一個事件。當按下並釋放按鈕時,AWT 透過呼叫按鈕上的 processEvent 方法向按鈕傳送一個 ActionEvent 例項。按鈕的 processEvent 方法接收按鈕的所有事件;它透過呼叫自己的 processActionEvent 方法傳遞操作事件。後一種方法將操作事件傳遞給任何已註冊對該按鈕生成的事件感興趣的操作偵聽器。

如果應用程式希望根據按鈕的按下和釋放執行某些操作,則應實現 ActionListener 並註冊新的偵聽器以接收來自此按鈕的事件,方法是呼叫按鈕的 addActionListener 方法。應用程式可以使用按鈕的操作命令作為訊息傳遞協議。

類宣告

以下是java.awt.Button類的宣告

public class Button
   extends Component
      implements Accessible

類建構函式

序號建構函式和描述
1

Button()

構造一個按鈕,其標籤為空字串。

2

Button(String text)

使用指定的標籤構造一個新的按鈕。

類方法

序號方法和描述
1

void addActionListener(ActionListener l)

新增指定的動作偵聽器以接收來自此按鈕的動作事件。

2

void addNotify()

建立按鈕的同級。

3

AccessibleContext getAccessibleContext()

獲取與此 Button 關聯的 AccessibleContext。

4

String getActionCommand()

返回此按鈕觸發的操作事件的命令名稱。

5

ActionListener[] getActionListeners()

返回在此按鈕上註冊的所有操作偵聽器的陣列。

6

String getLabel()

獲取此按鈕的標籤。

7

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

返回當前在此 Button 上註冊為 FooListeners 的所有物件的陣列。

8

protected String paramString()

返回表示此 Button 狀態的字串。

9

protected void processActionEvent(ActionEvent e)

透過將操作事件分派到任何已註冊的 ActionListener 物件來處理在此按鈕上發生的操作事件。

10

protected void processEvent(AWTEvent e)

處理此按鈕上的事件。

11

void removeActionListener(ActionListener l)

刪除指定的動作偵聽器,以便它不再接收來自此按鈕的動作事件。

12

void setActionCommand(String command)

設定此按鈕觸發的操作事件的命令名稱。

13

void setLabel(String label)

將按鈕的標籤設定為指定的字串。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

按鈕示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showButtonDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showButtonDemo(){
      headerLabel.setText("Control in action: Button"); 

      Button okButton = new Button("OK");
      Button submitButton = new Button("Submit");
      Button cancelButton = new Button("Cancel");

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Ok Button clicked.");
         }
      });

      submitButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Submit Button clicked.");
         }
      });

      cancelButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Cancel Button clicked.");
         }
      });

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Button

AWT 複選框類

簡介

複選框控制元件用於開啟(true)或關閉(false)選項。每個複選框都有一個標籤,表示複選框的作用。可以透過單擊複選框來更改其狀態。

類宣告

以下是java.awt.Checkbox類的宣告

public class Checkbox
   extends Component
      implements ItemSelectable,Accessible

類建構函式

序號建構函式和描述
1

Checkbox()

建立一個複選框,其標籤為空字串。

2

Checkbox(String label)

建立一個具有指定標籤的複選框。

3

Checkbox(String label, boolean state)

建立一個具有指定標籤的複選框,並設定指定狀態。

4

Checkbox(String label, boolean state, CheckboxGroup group)

構造一個具有指定標籤的複選框,設定為指定狀態,並在指定的複選框組中。

5

Checkbox(String label, CheckboxGroup group, boolean state)

建立一個具有指定標籤的複選框,位於指定的複選框組中,並設定為指定狀態。

類方法

序號方法和描述
1

void addItemListener(ItemListener l)

新增指定的專案偵聽器以接收來自此複選框的專案事件。

2

void addNotify()

建立 Checkbox 的同級。

3

AccessibleContext getAccessibleContext()

獲取與此 Checkbox 關聯的 AccessibleContext。

4

CheckboxGroup getCheckboxGroup()

確定此複選框的組。

5

ItemListener[] getItemListeners()

返回在此複選框上註冊的所有專案偵聽器的陣列。

6

String getLabel()

獲取此複選框的標籤。

7

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

返回當前在此 Checkbox 上註冊為 FooListeners 的所有物件的陣列。

8

Object[] getSelectedObjects()

返回一個包含複選框標籤的陣列(長度為 1),如果複選框未選中,則返回 null。

9

boolean getState()

確定此複選框處於狀態。

10

protected String paramString()

返回表示此 Checkbox 狀態的字串。

11

protected void processEvent(AWTEvent e)

處理此複選框上的事件。

12

protected void processItemEvent(ItemEvent e)

透過將專案事件分派到任何已註冊的 ItemListener 物件來處理在此複選框上發生的專案事件。

13

void removeItemListener(ItemListener l)

刪除指定的專案偵聽器,以便專案偵聽器不再接收來自此複選框的專案事件。

14

void setCheckboxGroup(CheckboxGroup g)

將此複選框的組設定為指定的複選框組。

15

void setLabel(String label)

將此複選框的標籤設定為字串引數。

16

void setState(boolean state)

將此複選框的狀態設定為指定狀態。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

複選框示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showCheckBoxDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showCheckBoxDemo(){

      headerLabel.setText("Control in action: CheckBox"); 

      Checkbox chkApple = new Checkbox("Apple");
      Checkbox chkMango = new Checkbox("Mango");
      Checkbox chkPeer = new Checkbox("Peer");


      chkApple.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("Apple Checkbox: " 
            + (e.getStateChange()==1?"checked":"unchecked"));
         }
      });

      chkMango.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            statusLabel.setText("Mango Checkbox: " 
            + (e.getStateChange()==1?"checked":"unchecked"));
         }
      });

      chkPeer.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            statusLabel.setText("Peer Checkbox: " 
            + (e.getStateChange()==1?"checked":"unchecked"));
         }
      });

      controlPanel.add(chkApple);
      controlPanel.add(chkMango);
      controlPanel.add(chkPeer);       

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT CheckBox

AWT 複選框組類

簡介

CheckboxGroup 類用於對複選框集進行分組。

類宣告

以下是java.awt.CheckboxGroup類的宣告

public class CheckboxGroup
   extends Object
      implements Serializable

類建構函式

序號建構函式和描述
1

CheckboxGroup() ()

建立一個新的 CheckboxGroup 例項。

類方法

序號方法和描述
1

Checkbox getCurrent()

已棄用。從 JDK 版本 1.1 開始,由 getSelectedCheckbox() 替換。

2

Checkbox getSelectedCheckbox()

獲取此複選框組中的當前選擇。

3

void setCurrent(Checkbox box)

已棄用。從 JDK 版本 1.1 開始,由 setSelectedCheckbox(Checkbox) 替換。

4

void setSelectedCheckbox(Checkbox box)

將此組中當前選中的複選框設定為指定的複選框。

5

String toString()

返回此複選框組的字串表示形式,包括其當前選擇的值。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

複選框組示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showCheckBoxGroupDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showCheckBoxGroupDemo(){
    
      headerLabel.setText("Control in action: CheckBoxGroup"); 

      CheckboxGroup fruitGroup = new CheckboxGroup();

      Checkbox chkApple = new Checkbox("Apple",fruitGroup,true);
      Checkbox chkMango = new Checkbox("Mango",fruitGroup,false);
      Checkbox chkPeer = new Checkbox("Peer",fruitGroup,false);

      statusLabel.setText("Apple Checkbox: checked");
      chkApple.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("Apple Checkbox: checked");
         }
      });

      chkMango.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            statusLabel.setText("Mango Checkbox: checked");
         }
      });

      chkPeer.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            statusLabel.setText("Peer Checkbox: checked");
         }
      });

      controlPanel.add(chkApple);
      controlPanel.add(chkMango);   
      controlPanel.add(chkPeer);       

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT CheckBoxGroup

AWT 列表類

簡介

List 表示文字項列表。可以配置列表,以便使用者可以選擇一個或多個專案。

類宣告

以下是java.awt.List類的宣告

public class List
   extends Component
      implements ItemSelectable, Accessible

類建構函式

序號建構函式和描述
1

List()

建立一個新的滾動列表。

2

List(int rows)

建立一個新的滾動列表,並使用指定的可見行數進行初始化。

3

List(int rows, boolean multipleMode)

建立一個新的滾動列表,初始化以顯示指定的行數。

類方法

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

返回當前在此 List 上註冊為 FooListeners 的所有物件的陣列。

序號方法和描述
1

void add(String item)

將指定的專案新增到滾動列表的末尾。

2

void add(String item, int index)

將指定的專案新增到索引指示的位置的滾動列表中。

3

void addActionListener(ActionListener l)

新增指定的動作偵聽器以接收來自此列表的動作事件。

4

void addItem(String item)

已棄用。由 add(String) 替換。

5

void addItem(String item, int index)

已棄用。由 add(String, int) 替換。

6

void addItemListener(ItemListener l)

新增指定的專案偵聽器以接收來自此列表的專案事件。

7

void addNotify()

建立列表的同級。

8

boolean allowsMultipleSelections()

已棄用。從 JDK 版本 1.1 開始,由 isMultipleMode() 替換。

9

void clear()

已棄用。從 JDK 版本 1.1 開始,由 removeAll() 替換。

10

int countItems()

已棄用。從 JDK 版本 1.1 開始,由 getItemCount() 替換。

11

void delItem(int position)

已棄用。由 remove(String) 和 remove(int) 替換。

12

void delItems(int start, int end)

已棄用。從 JDK 版本 1.1 開始,將來不供公開使用。此方法預計僅保留為包私有方法。

13

void deselect(int index)

取消選擇指定索引處的專案。

14

AccessibleContext getAccessibleContext()

獲取與此 List 關聯的 AccessibleContext。

15

ActionListener[] getActionListeners()

返回在此列表上註冊的所有操作偵聽器的陣列。

16

String getItem(int index)

獲取與指定索引關聯的專案。

17

int getItemCount()

獲取列表中的專案數。

18

ItemListener[] getItemListeners()

返回在此列表上註冊的所有專案偵聽器的陣列。

19

String[] getItems()

獲取列表中的專案。

20

Dimension getMinimumSize()

確定此滾動列表的最小大小。

21

Dimension getMinimumSize(int rows)

獲取具有指定行數的列表的最小尺寸。

22

Dimension getPreferredSize()

獲取此滾動列表的首選大小。

23

Dimension getPreferredSize(int rows)

獲取具有指定行數的列表的首選尺寸。

24

int getRows()

獲取此列表中可見行的數量。

25

int getSelectedIndex()

獲取列表中選定專案的索引,

26

int[] getSelectedIndexes()

獲取列表中選定的索引。

27

String getSelectedItem()

獲取此滾動列表中選定的專案。

28

String[] getSelectedItems()

獲取此滾動列表中選定的專案。

29

Object[] getSelectedObjects()

獲取此滾動列表中選定的專案,儲存在 Object 陣列中。

30

int getVisibleIndex()

獲取 makeVisible 方法最後使可見的專案的索引。

31

boolean isIndexSelected(int index)

確定此滾動列表中指定的專案是否已選中。

32

boolean isMultipleMode()

確定此列表是否允許多項選擇。

33

boolean isSelected(int index)

已棄用。從 JDK 版本 1.1 開始,由 isIndexSelected(int) 替換。

34

void makeVisible(int index)

使指定索引處的專案可見。

35

Dimension minimumSize()

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize() 替換。

36

Dimension minimumSize(int rows)

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize(int) 替換。

37

protected String paramString()

返回表示此滾動列表狀態的引數字串。

38

Dimension preferredSize()

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize() 替換。

39

Dimension preferredSize(int rows)

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize(int) 替換。

40

protected void processActionEvent(ActionEvent e)

透過將操作事件分派到任何已註冊的 ActionListener 物件來處理在此元件上發生的操作事件。

41

protected void processEvent(AWTEvent e)

處理此滾動列表上的事件。

42

protected void processItemEvent(ItemEvent e)

透過將專案事件分派到任何已註冊的 ItemListener 物件來處理在此列表上發生的專案事件。

43

void remove(int position)

從此滾動列表中刪除指定位置處的專案。

44

void remove(String item)

從列表中刪除專案的第一次出現。

45

void removeActionListener(ActionListener l)

刪除指定的動作偵聽器,以便它不再接收來自此列表的動作事件。

46

void removeAll()

從此列表中刪除所有專案。

47

void removeItemListener(ItemListener l)

刪除指定的專案偵聽器,以便它不再接收來自此列表的專案事件。

48

void removeNotify()

刪除此列表的同級。

49

void replaceItem(String newValue, int index)

用新字串替換滾動列表中指定索引處的專案。

50

void select(int index)

選擇滾動列表中指定索引處的專案。

51

void setMultipleMode(boolean b)

設定確定此列表是否允許多項選擇的標誌。

52

void setMultipleSelections(boolean b)

已棄用。從 JDK 版本 1.1 開始,由 setMultipleMode(boolean) 替換。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

列表示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showListDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showListDemo(){                                       

      headerLabel.setText("Control in action: List"); 
      final List fruitList = new List(4,false);

      fruitList.add("Apple");
      fruitList.add("Grapes");
      fruitList.add("Mango");
      fruitList.add("Peer");

      final List vegetableList = new List(4,true);
   
      vegetableList.add("Lady Finger");
      vegetableList.add("Onion");
      vegetableList.add("Potato");
      vegetableList.add("Tomato");

      Button showButton = new Button("Show");

      showButton.addActionListener(new ActionListener() {

         public void actionPerformed(ActionEvent e) {     
            String data = "Fruits Selected: " 
               + fruitList.getItem(fruitList.getSelectedIndex());
            data += ", Vegetables selected: ";
            for(String vegetable:vegetableList.getSelectedItems()){
               data += vegetable + " ";
            }
            statusLabel.setText(data);
         }
      }); 

      controlPanel.add(fruitList);
      controlPanel.add(vegetableList);
      controlPanel.add(showButton);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT List

AWT 文字欄位類

簡介

textField 元件允許使用者編輯單行文字。當用戶在文字欄位中鍵入一個鍵時,事件將傳送到 TextField。鍵事件可能是鍵按下、鍵釋放或鍵入。鍵事件傳遞給已註冊的 KeyListener。如果在文字欄位上啟用了 ActionEvent,則按下回車鍵也可能會觸發 ActionEvent。

類宣告

以下是java.awt.TextField類的宣告

public class TextField
   extends TextComponent

類建構函式

序號建構函式和描述
1

TextField()

構造一個新的文字欄位。

2

TextField(int columns)

使用指定的列數構造一個新的空文字欄位。

3

TextField(String text)

構造一個新的文字欄位,並使用指定的文字進行初始化。

4

TextField(String text, int columns)

構造一個新的文字欄位,使用指定的文字進行顯示,並且寬度足以容納指定數量的列。

類方法

序號方法和描述
1

void addActionListener(ActionListener l)

新增指定的動作監聽器,以接收來自此文字欄位的動作事件。

2

void addNotify()

建立 TextField 的對等體。

3

boolean echoCharIsSet()

指示此文字欄位是否設定了用於回顯的字元。

4

AccessibleContext getAccessibleContext()

獲取與此 TextField 關聯的 AccessibleContext。

5

ActionListener[] getActionListeners()

返回在此文字欄位上註冊的所有動作監聽器的陣列。

6

int getColumns()

獲取此文字欄位中的列數。

7

char getEchoChar()

獲取要用於回顯的字元。

8

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

返回當前在此 TextField 上註冊為 FooListeners 的所有物件的陣列。

9

Dimension getMinimumSize()

獲取此文字欄位的最小尺寸。

10

Dimension getMinimumSize(int columns) 獲取具有指定列數的文字欄位的最小尺寸。

11

Dimension getPreferredSize()

獲取此文字欄位的首選大小。

12

Dimension getPreferredSize(int columns)

獲取具有指定列數的此文字欄位的首選大小。

13

Dimension minimumSize()

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize() 替換。

14

Dimension minimumSize(int columns)

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize(int) 替換。

15

protected String paramString()

返回表示此 TextField 狀態的字串。

16

Dimension preferredSize()

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize() 替換。

17

Dimension preferredSize(int columns)

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize(int) 替換。

18

protected void processActionEvent(ActionEvent e)

透過將發生在此文字欄位上的動作事件分派到任何已註冊的 ActionListener 物件來處理這些事件。

19

protected void processEvent(AWTEvent e)

處理發生在此文字欄位上的事件。

20

void removeActionListener(ActionListener l)

移除指定的動作監聽器,使其不再接收來自此文字欄位的動作事件。

21

void setColumns(int columns)

設定此文字欄位中的列數。

22

void setEchoChar(char c)

設定此文字欄位的回顯字元。

23

void setEchoCharacter(char c)

已過時。從 JDK 版本 1.1 開始,由 setEchoChar(char) 替換。

24

void setText(String t)

將此文字元件呈現的文字設定為指定的文字。

繼承的方法

此類繼承自以下類的方法

  • java.awt.TextComponent

  • java.awt.Component

  • java.lang.Object

TextField 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showTextFieldDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showTextFieldDemo(){
      headerLabel.setText("Control in action: TextField"); 

      Label  namelabel= new Label("User ID: ", Label.RIGHT);
      Label  passwordLabel = new Label("Password: ", Label.CENTER);
      final TextField userText = new TextField(6);
      final TextField passwordText = new TextField(6);
      passwordText.setEchoChar('*');

      Button loginButton = new Button("Login");
   
      loginButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            String data = "Username: " + userText.getText();
            data += ", Password: " + passwordText.getText();
            statusLabel.setText(data);        
         }
      }); 

      controlPanel.add(namelabel);
      controlPanel.add(userText);
      controlPanel.add(passwordLabel);       
      controlPanel.add(passwordText);
      controlPanel.add(loginButton);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT TextField

AWT TextArea 類

簡介

AWT 中的 TextArea 控制元件為我們提供了多行編輯區域。使用者可以在這裡輸入任意數量的文字。當文字區域中的文字大於可視區域時,會自動出現捲軸,幫助我們上下和左右滾動文字。

類宣告

以下是 java.awt.TextArea 類的宣告

public class TextArea
   extends TextComponent

欄位

以下是 java.awt.TextArea 類的欄位

  • static int SCROLLBARS_BOTH -- 建立並顯示垂直和水平捲軸。

  • static int SCROLLBARS_HORIZONTAL_ONLY -- 僅建立並顯示水平捲軸。

  • static int SCROLLBARS_NONE -- 不為文字區域建立或顯示任何捲軸。

  • static int SCROLLBARS_VERTICAL_ONLY -- 僅建立並顯示垂直捲軸。

類建構函式

序號建構函式和描述
1

TextArea()

構造一個新的文字區域,其文字為空字串。

2

TextArea(int rows, int columns)

構造一個新的文字區域,具有指定的行數和列數,以及空字串作為文字。

3

TextArea(String text)

構造一個新的文字區域,使用指定的文字。

4

TextArea(String text, int rows, int columns)

構造一個新的文字區域,使用指定的文字,以及指定的行數和列數。

5

TextArea(String text, int rows, int columns, int scrollbars)

構造一個新的文字區域,使用指定的文字,以及指定的行數、列數和捲軸可見性。

類方法

序號方法和描述
1

void addNotify()

建立 TextArea 的對等體。

2

void append(String str)

將給定的文字附加到文字區域的當前文字。

3

void appendText(String str)

已過時。從 JDK 版本 1.1 開始,由 append(String) 替換。

4

AccessibleContext getAccessibleContext()

返回與此 TextArea 關聯的 AccessibleContext。

5

int getColumns()

返回此文字區域中的列數。

6

Dimension getMinimumSize()

確定此文字區域的最小大小。

7

Dimension getMinimumSize(int rows, int columns)

確定具有指定行數和列數的文字區域的最小大小。

8

Dimension getPreferredSize()

確定此文字區域的首選大小。

9

Dimension getPreferredSize(int rows, int columns)

確定具有指定行數和列數的文字區域的首選大小。

10

int getRows()

返回文字區域中的行數。

11

int getScrollbarVisibility()

返回一個列舉值,指示文字區域使用哪些捲軸。

12

void insert(String str, int pos)

在此文字區域的指定位置插入指定的文字。

13

void insertText(String str, int pos)

已過時。從 JDK 版本 1.1 開始,由 insert(String, int) 替換。

14

Dimension minimumSize()

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize() 替換。

15

Dimension minimumSize(int rows, int columns)

已過時。從 JDK 版本 1.1 開始,由 getMinimumSize(int, int) 替換。

16

protected String paramString()

返回表示此 TextArea 狀態的字串。

17

Dimension preferredSize()

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize() 替換。

18

Dimension preferredSize(int rows, int columns)

已過時。從 JDK 版本 1.1 開始,由 getPreferredSize(int, int) 替換。

19

void replaceRange(String str, int start, int end)

用指定的替換文字替換指示的開始和結束位置之間的文字。

20

void replaceText(String str, int start, int end)

已過時。從 JDK 版本 1.1 開始,由 replaceRange(String, int, int) 替換。

21

void setColumns(int columns)

設定此文字區域的列數。

22

void setRows(int rows)

設定此文字區域的行數。

繼承的方法

此類繼承自以下類的方法

  • java.awt.TextComponent

  • java.awt.Component

  • java.lang.Object

TextArea 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showTextAreaDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showTextAreaDemo(){
      headerLabel.setText("Control in action: TextArea"); 

      Label  commentlabel= new Label("Comments: ", Label.RIGHT);

      final TextArea commentTextArea = new TextArea("This is a AWT tutorial "
      +"to make GUI application in Java.",5,30);

      Button showButton = new Button("Show");

      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            statusLabel.setText( commentTextArea.getText());        
         }
      }); 

      controlPanel.add(commentlabel);
      controlPanel.add(commentTextArea);        
      controlPanel.add(showButton);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT TextArea

AWT Choice 類

簡介

Choice 控制元件用於顯示選項的彈出選單。選定的選項顯示在選單頂部。

類宣告

以下是 java.awt.Choice 類的宣告

public class Choice
   extends Component
      implements ItemSelectable, Accessible

類建構函式

序號建構函式和描述
1

Choice() ()

建立一個新的選擇選單。

類方法

序號方法和描述
1

void add(String item)

在此 Choice 選單中新增一個專案。

2

void addItem(String item)

從 Java 2 平臺 v1.1 開始已過時。

3

void addItemListener(ItemListener l)

新增指定的專案監聽器,以接收來自此 Choice 選單的專案事件。

4

void addNotify()

建立 Choice 的對等體。

5

int countItems()

已棄用。從 JDK 版本 1.1 開始,由 getItemCount() 替換。

6

AccessibleContext getAccessibleContext()

獲取與此 Choice 關聯的 AccessibleContext。

7

String getItem(int index)

獲取此 Choice 選單中指定索引處的字串。

8

int getItemCount()

返回此 Choice 選單中的專案數。

9

ItemListener[] getItemListeners()

返回在此選擇上註冊的所有專案監聽器的陣列。

10

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

返回當前在此 Choice 上註冊為 FooListeners 的所有物件的陣列。

11

int getSelectedIndex()

返回當前所選專案的索引。

12

String getSelectedItem()

獲取當前選擇的字串表示形式。

13

Object[] getSelectedObjects()

返回一個包含當前所選專案的陣列(長度為 1)。

14

void insert(String item, int index)

在此選擇的指定位置插入專案。

15

protected String paramString()

返回表示此 Choice 選單狀態的字串。

16

protected void processEvent(AWTEvent e)

處理發生在此選擇上的事件。

17

protected void processItemEvent(ItemEvent e)

透過將發生在此 Choice 選單上的專案事件分派到任何已註冊的 ItemListener 物件來處理這些事件。

18

void remove(int position)

從選擇選單的指定位置移除一個專案。

19

void remove(String item)

從 Choice 選單中移除專案的第一次出現。

20

void removeAll()

從選擇選單中移除所有專案。

21

void removeItemListener(ItemListener l)

移除指定的專案監聽器,使其不再接收來自此 Choice 選單的專案事件。

22

void select(int pos)

將此 Choice 選單中的所選專案設定為指定位置處的專案。

23

void select(String str)

將此 Choice 選單中的所選專案設定為名稱等於指定字串的專案。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

Choice 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showChoiceDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showChoiceDemo(){                                       

      headerLabel.setText("Control in action: Choice"); 
      final Choice fruitChoice = new Choice();

      fruitChoice.add("Apple");
      fruitChoice.add("Grapes");
      fruitChoice.add("Mango");
      fruitChoice.add("Peer");

      Button showButton = new Button("Show");

      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            String data = "Fruit Selected: " 
            + fruitChoice.getItem(fruitChoice.getSelectedIndex());
            statusLabel.setText(data);
         }
      }); 

      controlPanel.add(fruitChoice);
      controlPanel.add(showButton);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Choice

AWT Canvas 類

簡介

Canvas 控制元件表示一個矩形區域,應用程式可以在其中繪製內容或接收使用者建立的輸入。

類宣告

以下是 java.awt.Canvas 類的宣告

public class Canvas
   extends Component
      implements Accessible

類建構函式

序號建構函式和描述
1

Canvas()

構造一個新的 Canvas。

2

Canvas(GraphicsConfiguration config)

給定一個 GraphicsConfiguration 物件,構造一個新的 Canvas。

類方法

序號方法和描述
1

void addNotify()

建立畫布的對等體。

2

void createBufferStrategy(int numBuffers)

為此元件上的多緩衝建立新的策略。

3

void createBufferStrategy(int numBuffers, BufferCapabilities caps)

為此元件上的多緩衝建立新的策略,並具有所需的緩衝功能。

4

AccessibleContext getAccessibleContext()

獲取與此 Canvas 關聯的 AccessibleContext。

5

BufferStrategy getBufferStrategy()

返回此元件使用的 BufferStrategy。

6

void paint(Graphics g)

繪製此畫布。

7

void pdate(Graphics g)

更新此畫布。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

Canvas 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showCanvasDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showCanvasDemo(){
      headerLabel.setText("Control in action: Canvas"); 

      controlPanel.add(new MyCanvas());
      mainFrame.setVisible(true);  
   } 

   class MyCanvas extends Canvas {

      public MyCanvas () {
         setBackground (Color.GRAY);
         setSize(300, 300);
      }

      public void paint (Graphics g) {
         Graphics2D g2;
         g2 = (Graphics2D) g;
         g2.drawString ("It is a custom canvas area", 70, 70);
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Canvas

AWT Image 類

簡介

Image 控制元件是所有表示圖形影像的影像類的超類。

類宣告

以下是 java.awt.Image 類的宣告

public abstract class Image
   extends Object

欄位

以下是 java.awt.Image 類的欄位

  • protected float accelerationPriority -- 加速此影像的優先順序。

  • static int SCALE_AREA_AVERAGING -- 使用區域平均影像縮放演算法。

  • static int SCALE_DEFAULT -- 使用預設的影像縮放演算法。

  • static int SCALE_FAST -- 選擇一個影像縮放演算法,該演算法比縮放影像的平滑度更優先考慮縮放速度。

  • static int SCALE_REPLICATE -- 使用 ReplicateScaleFilter 類中體現的影像縮放演算法。

  • static int SCALE_SMOOTH -- 選擇一個影像縮放演算法,該演算法比縮放速度更優先考慮影像平滑度。

  • static Object UndefinedProperty -- 每當獲取未為特定影像定義的屬性時,應返回 UndefinedProperty 物件。

類建構函式

序號建構函式和描述
1

Image()

類方法

序號方法和描述
1

void flush()

重新整理此 Image 物件正在使用的所有可重建資源。

2

float getAccelerationPriority()

返回加速優先順序提示的當前值。

3

ImageCapabilities getCapabilities(GraphicsConfiguration gc)

返回一個 ImageCapabilities 物件,可以查詢其在指定的 GraphicsConfiguration 上此 Image 的功能。

4

abstract Graphics getGraphics()

建立一個圖形上下文,用於繪製到螢幕外影像。

5

abstract int getHeight(ImageObserver observer)

確定影像的高度。

6

abstract Object getProperty(String name, ImageObserver observer)

按名稱獲取此影像的屬性。

7

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

建立此影像的縮放版本。

8

abstract ImageProducer getSource()

獲取為影像生成畫素的物件。

9

abstract int getWidth(ImageObserver observer)

確定影像的寬度。

10

void setAccelerationPriority(float priority)

為此影像設定一個關於加速重要性的提示。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

影像示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showImageDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showImageDemo(){
      headerLabel.setText("Control in action: Image"); 

      controlPanel.add(new ImageComponent("resources/java.jpg"));
      mainFrame.setVisible(true);  
   }
	
   class ImageComponent extends Component {

      BufferedImage img;

      public void paint(Graphics g) {
         g.drawImage(img, 0, 0, null);
      }

      public ImageComponent(String path) {
         try {
            img = ImageIO.read(new File(path));
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

      public Dimension getPreferredSize() {
         if (img == null) {
            return new Dimension(100,100);
         } else {
            return new Dimension(img.getWidth(), img.getHeight());
         }
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Image

AWT 捲軸類

簡介

捲軸控制元件表示一個捲軸元件,以便使用者從值的範圍內進行選擇。

類宣告

以下是java.awt.Scrollbar類的宣告

public class Scrollbar
   extends Component
      implements Adjustable, Accessible

欄位

以下是 java.awt.Image 類的欄位

  • static int HORIZONTAL --表示水平捲軸的常量。

  • static int VERTICAL --表示垂直捲軸的常量。

類建構函式

序號建構函式和描述
1

Scrollbar()

構造一個新的垂直捲軸。

2

Scrollbar(int orientation)

使用指定的方位構造一個新的捲軸。

3

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

使用指定的方位、初始值、可見量以及最小值和最大值構造一個新的捲軸。

類方法

AccessibleContext getAccessibleContext()

獲取與此捲軸關聯的 AccessibleContext。

AdjustmentListener[] getAdjustmentListeners()

返回在此捲軸上註冊的所有調整監聽器的陣列。

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

返回當前在此捲軸上註冊為 FooListeners 的所有物件的陣列。

序號方法和描述
1

void addAdjustmentListener(AdjustmentListener l)

新增指定的調整監聽器以接收來自此捲軸的 AdjustmentEvent 例項。

2

void addNotify()

建立捲軸的同級。

3

int getBlockIncrement()

獲取此捲軸的塊增量。

4

int getLineIncrement()

已過時。從 JDK 版本 1.1 開始,由 getUnitIncrement() 替換。

5

int getMaximum()

獲取此捲軸的最大值。

6

int getMinimum()

獲取此捲軸的最小值。

7

int getOrientation()

返回此捲軸的方位。

8

int getPageIncrement()

已過時。從 JDK 版本 1.1 開始,由 getBlockIncrement() 替換。

9

int getUnitIncrement()

獲取此捲軸的單位增量。

10

int getValue()

獲取此捲軸的當前值。

11

boolean

getValueIsAdjusting()

如果值正在由於使用者採取的操作而發生變化,則返回 true。

12

int getVisible()

已過時。從 JDK 版本 1.1 開始,由 getVisibleAmount() 替換。

13

int getVisibleAmount()

獲取此捲軸的可見量。

14

protected String paramString()

返回表示此捲軸狀態的字串。

15

protected void processAdjustmentEvent(AdjustmentEvent e)

透過將調整事件分派到任何已註冊的 AdjustmentListener 物件來處理在此捲軸上發生的調整事件。

16

protected

1

void processEvent(AWTEvent e)

處理此捲軸上的事件。

17

void removeAdjustmentListener(AdjustmentListener l)

刪除指定的調整監聽器,以便它不再接收來自此捲軸的 AdjustmentEvent 例項。

18

void setBlockIncrement(int v)

設定此捲軸的塊增量。

19

void setLineIncrement(int v)

已過時。從 JDK 版本 1.1 開始,由 setUnitIncrement(int) 替換。

20

void setMaximum(int newMaximum)

設定此捲軸的最大值。

21

void setMinimum(int newMinimum)

設定此捲軸的最小值。

22

void setOrientation(int orientation)

設定此捲軸的方位。

23

void setPageIncrement(int v)

已過時。從 JDK 版本 1.1 開始,由 setBlockIncrement() 替換。

24

void setUnitIncrement(int v)

設定此捲軸的單位增量。

25

void setValue(int newValue)

將此捲軸的值設定為指定的值。

26

void setValueIsAdjusting(boolean b)

設定 valueIsAdjusting 屬性。

27

void setValues(int value, int visible, int minimum, int maximum)

設定此捲軸的四個屬性的值:value、visibleAmount、minimum 和 maximum。

28

void setVisibleAmount(int newAmount)

設定此捲軸的可見量。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

捲軸示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showScrollbarDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showScrollbarDemo(){                                       
      headerLabel.setText("Control in action: Scrollbar"); 

      final Scrollbar horizontalScroller = new Scrollbar(Scrollbar.HORIZONTAL);
      final Scrollbar verticalScroller = new Scrollbar();
      verticalScroller.setOrientation(Scrollbar.VERTICAL);
      horizontalScroller.setMaximum (100);
      horizontalScroller.setMinimum (1);
      verticalScroller.setMaximum (100);
      verticalScroller.setMinimum (1);

      horizontalScroller.addAdjustmentListener(new AdjustmentListener() {

         @Override
         public void adjustmentValueChanged(AdjustmentEvent e) {
            statusLabel.setText("Horozontal: "
               +horizontalScroller.getValue() 
               +" ,Vertical: "
               + verticalScroller.getValue());
            }
         });

      verticalScroller.addAdjustmentListener(new AdjustmentListener() {

            @Override
            public void adjustmentValueChanged(AdjustmentEvent e) {
               statusLabel.setText("Horozontal: "
               +horizontalScroller.getValue() 
               +" ,Vertical: "+ verticalScroller.getValue());
            }
         });

      controlPanel.add(horizontalScroller);
      controlPanel.add(verticalScroller);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Scrollbar

AWT 對話方塊類

簡介

對話方塊控制元件表示一個頂級視窗,帶有標題和邊框,用於從使用者那裡獲取某種形式的輸入。

類宣告

以下是java.awt.Dialog類的宣告

public class Dialog
extends Window

欄位

以下是 java.awt.Image 類的欄位

  • static Dialog.ModalityType DEFAULT_MODALITY_TYPE -- 模態對話方塊的預設模態型別。

類建構函式

序號建構函式和描述
1

Dialog(Dialog owner)

使用指定的擁有者對話方塊和空標題構造一個最初不可見的、非模態對話方塊。

2

Dialog(Dialog owner, String title)

使用指定的擁有者對話方塊和標題構造一個最初不可見的、非模態對話方塊。

3

Dialog(Dialog owner, String title, boolean modal)

使用指定的擁有者對話方塊、標題和模態性構造一個最初不可見的對話方塊。

4

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

使用指定的擁有者對話方塊、標題、模態性和 GraphicsConfiguration 構造一個最初不可見的對話方塊。

5

Dialog(Frame owner)

使用指定的擁有者框架和空標題構造一個最初不可見的、非模態對話方塊。

6

Dialog(Frame owner, boolean modal)

使用指定的擁有者框架和模態性以及空標題構造一個最初不可見的對話方塊。

7

Dialog(Frame owner, String title)

使用指定的擁有者框架和標題構造一個最初不可見的、非模態對話方塊。

8

Dialog(Frame owner, String title, boolean modal)

使用指定的擁有者框架、標題和模態性構造一個最初不可見的對話方塊。

9

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

使用指定的擁有者框架、標題、模態性和 GraphicsConfiguration 構造一個最初不可見的對話方塊。

10

Dialog(Window owner)

使用指定的擁有者視窗和空標題構造一個最初不可見的、非模態對話方塊。

11

Dialog(Window owner, Dialog.ModalityType modalityType)

使用指定的擁有者視窗和模態性以及空標題構造一個最初不可見的對話方塊。

12

Dialog(Window owner, String title)

使用指定的擁有者視窗和標題構造一個最初不可見的、非模態對話方塊。

13

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

使用指定的擁有者視窗、標題和模態性構造一個最初不可見的對話方塊。

14

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

使用指定的擁有者視窗、標題、模態性和 GraphicsConfiguration 構造一個最初不可見的對話方塊

類方法

序號方法和描述
1

void addNotify()

透過將其連線到本機螢幕資源使此對話方塊可顯示。

2

AccessibleContext getAccessibleContext()

獲取與此對話方塊關聯的 AccessibleContext。

3

Dialog.ModalityType getModalityType()

返回此對話方塊的模態型別。

4

String getTitle()

獲取對話方塊的標題。

5

void hide()

已過時。從 JDK 版本 1.5 開始,由 setVisible(boolean) 替換。

6

boolean isModal()

指示對話方塊是否為模態。

7

boolean isResizable()

指示此對話方塊是否可由使用者調整大小。

8

boolean isUndecorated()

指示此對話方塊是否沒有修飾。

9

protected String paramString()

返回表示此對話方塊狀態的字串。

10

void setModal(boolean modal)

指定此對話方塊是否應為模態。

11

void setModalityType(Dialog.ModalityType type)

設定此對話方塊的模態型別。

12

void setResizable(boolean resizable)

設定此對話方塊是否可由使用者調整大小。

13

void setTitle(String title)

設定對話方塊的標題。

14

void setUndecorated(boolean undecorated)

停用或啟用此對話方塊的修飾。

15

void setVisible(boolean b)

根據引數 b 的值顯示或隱藏此對話方塊。

16

void show()

已過時。從 JDK 版本 1.5 開始,由 setVisible(boolean) 替換。

17

void toBack()

如果此視窗可見,則將此視窗傳送到後面,如果它是焦點或活動視窗,則可能會導致它失去焦點或啟用。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Window

  • java.awt.Component

  • java.lang.Object

對話方塊示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showDialogDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showDialogDemo(){
      headerLabel.setText("Control in action: Dialog"); 
      Button showAboutDialogButton = new Button("Show About Dialog");
      showAboutDialogButton.addActionListener(new ActionListener() {
	     @Override
         public void actionPerformed(ActionEvent e) {
            AboutDialog aboutDialog = new AboutDialog(mainFrame);
            aboutDialog.setVisible(true);
         }
      });

      controlPanel.add(showAboutDialogButton);
      mainFrame.setVisible(true);  
   }

   class AboutDialog extends Dialog {
      public AboutDialog(Frame parent){
         super(parent, true);         
         setBackground(Color.gray);
         setLayout(new BorderLayout());
         Panel panel = new Panel();
         panel.add(new Button("Close"));
         add("South", panel);
         setSize(200,200);

         addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent){
               dispose();
            }
         });
      }

      public boolean action(Event evt, Object arg){
         if(arg.equals("Close")){
            dispose();
            return true;
         }
         return false;
      }

      public void paint(Graphics g){
         g.setColor(Color.white);
         g.drawString("TutorialsPoint.Com", 25,70 );
         g.drawString("Version 1.0", 60, 90);      
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Dialog

AWT 檔案對話方塊類

簡介

檔案對話方塊控制元件表示一個對話方塊視窗,使用者可以在其中選擇檔案。

類宣告

以下是java.awt.FileDialog類的宣告

public class FileDialog
   extends Dialog

欄位

以下是 java.awt.Image 類的欄位

  • static int LOAD -- 此常量值指示檔案對話方塊視窗的目的是查詢要從中讀取的檔案。

  • static int SAVE -- 此常量值指示檔案對話方塊視窗的目的是查詢要寫入的檔案。

類建構函式

序號建構函式和描述
1

FileDialog(Dialog parent)

建立用於載入檔案的對話方塊。

2

FileDialog(Dialog parent, String title)

建立具有指定標題的檔案對話方塊視窗以載入檔案。

3

FileDialog(Dialog parent, String title, int mode)

建立具有指定標題的檔案對話方塊視窗以載入或儲存檔案。

4

FileDialog(Frame parent)

建立用於載入檔案的對話方塊。

5

FileDialog(Frame parent, String title)

建立具有指定標題的檔案對話方塊視窗以載入檔案。

6

FileDialog(Frame parent, String title, int mode)

建立具有指定標題的檔案對話方塊視窗以載入或儲存檔案。

類方法

序號方法和描述
1

void addNotify()

建立檔案對話方塊的同級。

2

String getDirectory()

獲取此檔案對話方塊的目錄。

3

String getFile()

獲取此檔案對話方塊選定的檔案。

4

FilenameFilter getFilenameFilter()

確定此檔案對話方塊的檔名過濾器。

5

int getMode()

指示此檔案對話方塊框是用於從檔案載入還是用於儲存到檔案。

6

protected String paramString()

返回表示此 FileDialog 視窗狀態的字串。

7

void setDirectory(String dir)

將此檔案對話方塊視窗的目錄設定為指定的目錄。

8

void setFile(String file)

將此檔案對話方塊視窗選定的檔案設定為指定的檔案。

9

void setFilenameFilter(FilenameFilter filter)

將此檔案對話方塊視窗的檔名過濾器設定為指定的過濾器。

10

void setMode(int mode)

設定檔案對話方塊的模式。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Dialog

  • java.awt.Window

  • java.awt.Component

  • java.lang.Object

檔案對話方塊示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showFileDialogDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showFileDialogDemo(){
      headerLabel.setText("Control in action: FileDialog"); 

      final FileDialog fileDialog = new FileDialog(mainFrame,"Select file");
      Button showFileDialogButton = new Button("Open File");
      showFileDialogButton.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
            fileDialog.setVisible(true);
            statusLabel.setText("File Selected :" 
            + fileDialog.getDirectory() + fileDialog.getFile());
         }
      });

      controlPanel.add(showFileDialogButton);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT FileDialog

事件處理

什麼是事件?

物件狀態的變化稱為事件,即事件描述源的狀態變化。事件是由於使用者與圖形使用者介面元件互動而產生的。例如,單擊按鈕、移動滑鼠、透過鍵盤輸入字元、從列表中選擇專案、滾動頁面等活動都會導致事件發生。

事件的型別

事件可以大致分為兩類

  • 前臺事件 - 需要使用者直接互動的事件。它們是由於使用者與圖形使用者介面中的圖形元件互動而產生的。例如,單擊按鈕、移動滑鼠、透過鍵盤輸入字元、從列表中選擇專案、滾動頁面等。

  • 後臺事件 - 不需要終端使用者互動的事件稱為後臺事件。作業系統中斷、硬體或軟體故障、計時器超時、操作完成都是後臺事件的示例。

什麼是事件處理?

事件處理是一種控制事件並決定事件發生時應該執行什麼操作的機制。這種機制包含稱為事件處理程式的程式碼,當事件發生時會執行該程式碼。Java 使用委託事件模型來處理事件。此模型定義了生成和處理事件的標準機制。讓我們簡要介紹一下此模型。

委託事件模型具有以下主要參與者:

  • - 源是發生事件的物件。源負責將其處理程式提供發生的事件資訊。Java 為源物件提供了類。

  • 監聽器 - 也稱為事件處理程式。監聽器負責對事件做出響應。從 Java 實現的角度來看,監聽器也是一個物件。監聽器等待直到收到事件。一旦收到事件,監聽器就會處理該事件,然後返回。

這種方法的好處是使用者介面邏輯與生成事件的邏輯完全分離。使用者介面元素能夠將事件處理委託給單獨的程式碼部分。在此模型中,需要將監聽器註冊到源物件,以便監聽器可以接收事件通知。這是一種有效的事件處理方式,因為事件通知僅傳送給希望接收它們的監聽器。

事件處理涉及的步驟

  • 使用者單擊按鈕,並生成事件。

  • 現在,相關事件類的物件會自動建立,並且有關源和事件的資訊會填充到同一個物件中。

  • 事件物件被轉發到已註冊的監聽器類的 method 中。

  • 現在 method 被執行並返回。

關於監聽器需要記住的要點

  • 為了設計監聽器類,我們必須開發一些監聽器介面。這些監聽器介面預測了一些必須由監聽器類實現的公共抽象回撥方法。

  • 如果不實現任何預定義的介面,則您的類不能充當源物件的監聽器類。

回撥方法

這些方法由 API 提供者提供,由應用程式程式設計師定義,並由應用程式開發人員呼叫。這裡,回撥方法表示事件方法。響應事件,Java JRE 將觸發回撥方法。所有此類回撥方法都在監聽器介面中提供。

如果某個元件希望某個監聽器偵聽其事件,則源必須將其自身註冊到監聽器。

事件處理示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtControlDemo.java
package com.tutorialspoint.gui;

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

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showEventDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showEventDemo(){
      headerLabel.setText("Control in action: Button"); 

      Button okButton = new Button("OK");
      Button submitButton = new Button("Submit");
      Button cancelButton = new Button("Cancel");

      okButton.setActionCommand("OK");
      submitButton.setActionCommand("Submit");
      cancelButton.setActionCommand("Cancel");

      okButton.addActionListener(new ButtonClickListener()); 
      submitButton.addActionListener(new ButtonClickListener()); 
      cancelButton.addActionListener(new ButtonClickListener()); 

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }

   private class ButtonClickListener implements ActionListener{
      public void actionPerformed(ActionEvent e) {
         String command = e.getActionCommand();  
         if( command.equals( "OK" ))  {
            statusLabel.setText("Ok Button clicked.");
         }
         else if( command.equals( "Submit" ) )  {
            statusLabel.setText("Submit Button clicked."); 
         }
         else  {
            statusLabel.setText("Cancel Button clicked.");
         }  	
      }		
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Event Handling

AWT 事件類

事件類表示事件。Java 為我們提供了各種事件類,但我們將討論那些更常用的類。

EventObject 類

它是所有事件狀態物件都應從中派生的根類。所有事件都使用對物件的引用(即)進行構造,該物件在邏輯上被認為是事件最初發生的物件。此類在 java.util 包中定義。

類宣告

以下是java.util.EventObject 類的宣告

public class EventObject
   extends Object
      implements Serializable

欄位

以下是java.util.EventObject 類的欄位

  • protected Object source -- 事件最初發生的物件。

類建構函式

序號建構函式和描述
1

EventObject(Object source)

構造一個原型事件。

類方法

序號方法和描述
1

Object getSource()

事件最初發生的物件。

2

String toString()

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

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

AWT 事件類

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

AWT AWTEvent 類

它是所有 AWT 事件的根事件類。此類及其子類取代了原始的 java.awt.Event 類。此類在 java.awt 包中定義。此類具有名為 getID() 的方法,可用於確定事件的型別。

類宣告

以下是java.awt.AWTEvent 類的宣告

public class AWTEvent
   extends EventObject

欄位

以下是java.awt.AWTEvent 類的欄位

  • static int ACTION_FIRST -- 用於操作事件的 id 範圍中的第一個數字。

  • static long ACTION_EVENT_MASK -- 用於選擇操作事件的事件掩碼。

  • static long ADJUSTMENT_EVENT_MASK -- 用於選擇調整事件的事件掩碼。

  • static long COMPONENT_EVENT_MASK -- 用於選擇元件事件的事件掩碼。

  • protected boolean consumed -- 控制源處理完事件後是否將其傳送回對等方 - false 表示將其傳送到對等方;true 表示不傳送。

  • static long CONTAINER_EVENT_MASK -- 用於選擇容器事件的事件掩碼。

  • static long FOCUS_EVENT_MASK -- 用於選擇焦點事件的事件掩碼。

  • static long HIERARCHY_BOUNDS_EVENT_MASK -- 用於選擇層次邊界事件的事件掩碼。

  • static long HIERARCHY_EVENT_MASK -- 用於選擇層次事件的事件掩碼。

  • protected int id -- 事件的 id。

  • static long INPUT_METHOD_EVENT_MASK -- 用於選擇輸入方法事件的事件掩碼。

  • static long INVOCATION_EVENT_MASK -- 用於選擇呼叫事件的事件掩碼。

  • static long ITEM_EVENT_MASK -- 用於選擇專案事件的事件掩碼。

  • static long KEY_EVENT_MASK -- 用於選擇鍵盤事件的事件掩碼。

  • static long MOUSE_EVENT_MASK -- 用於選擇滑鼠事件的事件掩碼。

  • static long MOUSE_MOTION_EVENT_MASK -- 用於選擇滑鼠移動事件的事件掩碼。

  • static long MOUSE_WHEEL_EVENT_MASK -- 用於選擇滑鼠滾輪事件的事件掩碼。

  • static long PAINT_EVENT_MASK -- 用於選擇繪製事件的事件掩碼。

  • static int RESERVED_ID_MAX -- 保留的 AWT 事件 ID 的最大值。

  • static long TEXT_EVENT_MASK -- 用於選擇文字事件的事件掩碼。

  • static long WINDOW_EVENT_MASK -- 用於選擇視窗事件的事件掩碼。

  • static long WINDOW_FOCUS_EVENT_MASK -- 用於選擇視窗焦點事件的事件掩碼。

  • static long WINDOW_STATE_EVENT_MASK -- 用於選擇視窗狀態事件的事件掩碼。

類建構函式

序號建構函式和描述
1

AWTEvent(Event event)

從 1.0 風格事件的引數構造 AWTEvent 物件。

2

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

使用指定的源物件和型別構造 AWTEvent 物件。

類方法

序號方法和描述
1

protected void consume()

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

2

int getID()

返回事件型別。

3

protected boolean isConsumed()

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

4

java.lang.String paramString()

返回表示此事件狀態的字串。

5

void setSource(java.lang.Object newSource)

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

6

java.lang.String toString()

返回此物件的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.util.EventObject

  • java.lang.Object

AWT ActionEvent 類

此類在 java.awt.event 包中定義。當單擊按鈕或雙擊列表項時,將生成 ActionEvent。

類宣告

以下是java.awt.event.ActionEvent 類的宣告

public class ActionEvent
   extends AWTEvent

欄位

以下是java.awt.event.ActionEvent 類的欄位

  • static int ACTION_FIRST -- 用於操作事件的 id 範圍中的第一個數字。

  • static int ACTION_LAST -- 用於操作事件的 id 範圍中的最後一個數字。

  • static int ACTION_PERFORMED -- 此事件 id 表示發生了有意義的操作。

  • static int ALT_MASK -- Alt 鍵修飾符。

  • static int CTRL_MASK -- Ctrl 鍵修飾符。

  • static int META_MASK -- Meta 鍵修飾符。

  • static int SHIFT_MASK -- Shift 鍵修飾符。

類建構函式

序號建構函式和描述
1

ActionEvent(java.lang.Object source, int id, java.lang.String command)

構造一個 ActionEvent 物件。

2

ActionEvent(java.lang.Object source, int id, java.lang.String command, int modifiers)

使用修飾鍵構造一個 ActionEvent 物件。

3

ActionEvent(java.lang.Object source, int id, java.lang.String command, long when, int modifiers)

使用指定的修飾鍵和時間戳構造一個 ActionEvent 物件。

類方法

序號方法和描述
1

java.lang.String getActionCommand()

返回與此操作關聯的命令字串。

2

int getModifiers()

返回在此操作事件期間按住的修飾鍵。

3

long getWhen()

返回此事件發生的時間戳。

4

java.lang.String paramString()

返回識別此操作事件的引數字串。

繼承的方法

此類繼承自以下類的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT InputEvent 類

InputEvent 類是所有元件級輸入事件的根事件類。在輸入事件以其預設方式由其來源正常處理之前,會將其傳遞給偵聽器。這允許偵聽器和元件子類“使用”事件,以便源不會以其預設方式處理它們。例如,使用 Button 元件上的 mousePressed 事件將阻止 Button 被啟用。

類宣告

以下是java.awt.event.InputEvent 類的宣告

public abstract class InputEvent
   extends ComponentEvent

欄位

以下是java.awt.event.InputEvent 類的欄位

  • static int ALT_DOWN_MASK -- Alt 鍵擴充套件修飾符常量。

  • static int ALT_GRAPH_DOWN_MASK -- AltGraph 鍵擴充套件修飾符常量。

  • static int ALT_GRAPH_MASK -- AltGraph 鍵修飾符常量。

  • static int ALT_MASK -- Alt 鍵修飾符常量。

  • static int BUTTON1_DOWN_MASK -- 滑鼠按鈕 1 擴充套件修飾符常量。

  • static int BUTTON1_MASK -- 滑鼠按鈕 1 修飾符常量。

  • static int BUTTON2_DOWN_MASK -- 滑鼠按鈕 2 擴充套件修飾符常量。

  • static int BUTTON2_MASK -- 滑鼠按鈕 2 修飾符常量。

  • static int BUTTON3_DOWN_MASK -- 滑鼠按鈕 3 擴充套件修飾符常量。

  • static int BUTTON3_MASK -- 滑鼠按鈕 3 修飾符常量。

  • static int CTRL_DOWN_MASK -- Ctrl 鍵擴充套件修飾符常量。

  • static int CTRL_MASK -- Ctrl 鍵修飾符常量。

  • static int META_DOWN_MASK -- Meta 鍵擴充套件修飾符常量。

  • static int META_MASK -- Meta 鍵修飾符常量。

  • static int SHIFT_DOWN_MASK -- Shift 鍵擴充套件修飾符常量。

  • static int SHIFT_MASK -- Shift 鍵修飾符常量。

類方法

序號方法和描述
1

void consume()

使用此事件,以便它不會以其來源的預設方式處理。

2

int getModifiers()

返回此事件的修飾符掩碼。

3

int getModifiersEx()

返回此事件的擴充套件修飾符掩碼。

4

static String getModifiersExText(int modifiers)

返回一個字串,描述擴充套件修飾鍵和滑鼠按鈕,例如“Shift”、“Button1”或“Ctrl+Shift”。

5

long getWhen()

返回此事件發生的時間戳。

6

boolean isAltDown()

返回在此事件上是否按下 Alt 修飾符。

7

boolean isAltGraphDown()

返回在此事件上是否按下 AltGraph 修飾符。

8

boolean isConsumed()

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

9

boolean isControlDown()

返回此事件中 Control 修飾鍵是否按下。

10

boolean isMetaDown()

返回此事件中 Meta 修飾鍵是否按下。

11

boolean isShiftDown()

返回此事件中 Shift 修飾鍵是否按下。

繼承的方法

此類繼承自以下類的方法

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT KeyEvent 類

在輸入字元時會生成鍵盤事件。鍵盤事件有三種類型,用整數常量表示。這些鍵盤事件如下:

  • KEY_PRESSED

  • KEY_RELASED

  • KEY_TYPED

類宣告

以下是java.awt.event.KeyEvent類的宣告

public class KeyEvent
   extends InputEvent

欄位

以下是java.awt.InputEvent類的欄位

  • static char CHAR_UNDEFINED --對於不對映到有效 Unicode 字元的 KEY_PRESSED 和 KEY_RELEASED 事件,使用此值作為 keyChar 值。

  • static int KEY_FIRST --鍵盤事件使用的 ID 範圍內的第一個數字。

  • static int KEY_LAST --鍵盤事件使用的 ID 範圍內的最後一個數字。

  • static int KEY_LOCATION_LEFT --一個常量,指示按下或釋放的鍵位於左側鍵位置(此鍵可能有多個位置)。

  • static int KEY_LOCATION_NUMPAD --一個常量,指示鍵盤事件源自數字鍵盤或與數字鍵盤相對應的虛擬鍵。

  • static int KEY_LOCATION_RIGHT --一個常量,指示按下或釋放的鍵位於右側鍵位置(此鍵可能有多個位置)。

  • static int KEY_LOCATION_STANDARD --一個常量,指示按下或釋放的鍵不區分鍵的左側或右側版本,並且不是源自數字鍵盤(或不是源自與數字鍵盤相對應的虛擬鍵)。

  • static int KEY_LOCATION_UNKNOWN --一個常量,指示 keyLocation 不確定或不相關。

  • static int KEY_PRESSED --“按鍵按下”事件。

  • static int KEY_RELEASED --“按鍵釋放”事件。

  • static int KEY_TYPED --“按鍵輸入”事件。

  • static int VK_0 --VK_0 到 VK_9 與 ASCII '0' 到 '9' 相同 (0x30 - 0x39)

  • static int VK_1

  • static int VK_2

  • static int VK_3

  • static int VK_4

  • static int VK_5

  • static int VK_6

  • static int VK_7

  • static int VK_8

  • static int VK_9

  • static int VK_A --VK_A 到 VK_Z 與 ASCII 'A' 到 'Z' 相同 (0x41 - 0x5A)

  • static int VK_ACCEPT --接受或提交功能鍵的常量。

  • static int VK_ADD

  • static int VK_AGAIN

  • static int VK_ALL_CANDIDATES --所有候選項功能鍵的常量。

  • static int VK_ALPHANUMERIC --字母數字功能鍵的常量。

  • static int VK_ALT

  • static int VK_ALT_GRAPH --AltGraph 功能鍵的常量。

  • static int VK_AMPERSAND

  • static int VK_ASTERISK

  • static int VK_AT --“@”鍵的常量。

  • static int VK_B

  • static int VK_BACK_QUOTE

  • static int VK_BACK_SLASH --反斜槓鍵“\”的常量。

  • static int VK_BACK_SPACE

  • static int VK_BEGIN --開始鍵的常量。

  • static int VK_BRACELEFT

  • static int VK_BRACERIGHT

  • static int VK_C

  • static int VK_CANCEL

  • static int VK_CAPS_LOCK

  • static int VK_CIRCUMFLEX --“^”鍵的常量。

  • static int VK_CLEAR

  • static int VK_CLOSE_BRACKET --右方括號鍵“]”的常量。

  • static int VK_CODE_INPUT --程式碼輸入功能鍵的常量。

  • static int VK_COLON --“:”鍵的常量。

  • static int VK_COMMA --逗號鍵“,”的常量。

  • static int VK_COMPOSE --組合功能鍵的常量。

  • static int VK_CONTEXT_MENU --Microsoft Windows 上下文選單鍵的常量。

  • static int VK_CONTROL

  • static int VK_CONVERT --轉換功能鍵的常量。

  • static int VK_COPY

  • static int VK_CUT

  • static int VK_D

  • static int VK_DEAD_ABOVEDOT

  • static int VK_DEAD_ABOVERING

  • static int VK_DEAD_ACUTE

  • static int VK_DEAD_BREVE

  • static int VK_DEAD_CARON

  • static int VK_DEAD_CEDILLA

  • static int VK_DEAD_CIRCUMFLEX

  • static int VK_DEAD_DIAERESIS

  • static int VK_DEAD_DOUBLEACUTE

  • static int VK_DEAD_GRAVE

  • static int VK_DEAD_IOTA

  • static int VK_DEAD_MACRON

  • static int VK_DEAD_OGONEK

  • static int VK_DEAD_SEMIVOICED_SOUND

  • static int VK_DEAD_TILDE

  • static int VK_DEAD_VOICED_SOUND

  • static int VK_DECIMAL

  • static int VK_DELETE

  • static int VK_DIVIDE

  • static int VK_DOLLAR --“$”鍵的常量。

  • static int VK_DOWN --非數字鍵盤下方向鍵的常量。

  • static int VK_E

  • static int VK_END

  • static int VK_ENTER

  • static int VK_EQUALS --等號鍵“=”的常量。

  • static int VK_ESCAPE

  • static int VK_EURO_SIGN --歐元貨幣符號鍵的常量。

  • static int VK_EXCLAMATION_MARK --“!”鍵的常量。

  • static int VK_F

  • static int VK_F1 --F1 功能鍵的常量。

  • static int VK_F10 --F10 功能鍵的常量。

  • static int VK_F11 --F11 功能鍵的常量。

  • static int VK_F12 --F12 功能鍵的常量。

  • static int VK_F13 --F13 功能鍵的常量。

  • static int VK_F14 --F14 功能鍵的常量。

  • static int VK_F15 --F15 功能鍵的常量。

  • static int VK_F16 --F16 功能鍵的常量。

  • static int VK_F17 --F17 功能鍵的常量。

  • static int VK_F18 --F18 功能鍵的常量。

  • static int VK_F19 --F19 功能鍵的常量。

  • static int VK_F2 --F2 功能鍵的常量。

  • static int VK_F20 --F20 功能鍵的常量。

  • static int VK_F21 --F21 功能鍵的常量。

  • static int VK_F22 --F22 功能鍵的常量。

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

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

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

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

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

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

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

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

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

  • static int VK_FINAL

  • static int VK_FIND

  • static int VK_FULL_WIDTH --全形字元功能鍵的常量。

  • static int VK_G

  • static int VK_GREATER

  • static int VK_H

  • static int VK_HALF_WIDTH --半形字元功能鍵的常量。

  • static int VK_HELP

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

  • static int VK_HOME

  • static int VK_I

  • static int VK_INPUT_METHOD_ON_OFF --輸入法開關鍵的常量。

  • static int VK_INSERT

  • static int VK_INVERTED_EXCLAMATION_MARK --倒置感嘆號鍵的常量。

  • static int VK_J

  • static int VK_JAPANESE_HIRAGANA --日語平假名功能鍵的常量。

  • static int VK_JAPANESE_KATAKANA --日語片假名功能鍵的常量。

  • static int VK_JAPANESE_ROMAN --日語羅馬字功能鍵的常量。

  • static int VK_K

  • static int VK_KANA

  • static int VK_KANA_LOCK --鎖定假名功能鍵的常量。

  • static int VK_KANJI

  • static int VK_KATAKANA --片假名功能鍵的常量。

  • static int VK_KP_DOWN --數字鍵盤下方向鍵的常量。

  • static int VK_KP_LEFT --數字鍵盤左方向鍵的常量。

  • static int VK_KP_RIGHT --數字鍵盤右方向鍵的常量。

  • static int VK_KP_UP --數字鍵盤上方向鍵的常量。

  • static int VK_L

  • static int VK_LEFT --非數字鍵盤左方向鍵的常量。

  • static int VK_LEFT_PARENTHESIS --“(”鍵的常量。

  • static int VK_LESS

  • static int VK_M

  • static int VK_META

  • static int VK_MINUS --減號鍵“ - ”的常量。

  • static int VK_MODECHANGE

  • static int VK_MULTIPLY

  • static int VK_N

  • static int VK_NONCONVERT --不要轉換功能鍵的常量。

  • static int VK_NUM_LOCK

  • static int VK_NUMBER_SIGN --“#”鍵的常量。

  • static int VK_NUMPAD0

  • static int VK_NUMPAD1

  • static int VK_NUMPAD2

  • static int VK_NUMPAD3

  • static int VK_NUMPAD4

  • static int VK_NUMPAD5

  • static int VK_NUMPAD6

  • static int VK_NUMPAD7

  • static int VK_NUMPAD8

  • static int VK_NUMPAD9

  • static int VK_O

  • static int VK_OPEN_BRACKET --左方括號鍵“ [ ”的常量。

  • static int VK_P

  • static int VK_PAGE_DOWN

  • static int VK_PAGE_UP

  • static int VK_PASTE

  • static int VK_PAUSE

  • static int VK_PERIOD --句號鍵“.”的常量。

  • static int VK_PLUS --加號鍵“+”的常量。

  • static int VK_PREVIOUS_CANDIDATE --上一個候選項功能鍵的常量。

  • static int VK_PRINTSCREEN

  • static int VK_PROPS

  • static int VK_Q

  • static int VK_QUOTE

  • static int VK_QUOTEDBL

  • static int VK_R

  • static int VK_RIGHT --非數字鍵盤右方向鍵的常量。

  • static int VK_RIGHT_PARENTHESIS --“)”鍵的常量。

  • static int VK_ROMAN_CHARACTERS --羅馬字元功能鍵的常量。

  • static int VK_S

  • static int VK_SCROLL_LOCK

  • static int VK_SEMICOLON -- 分號鍵“;”的常量。

  • static int VK_SEPARATER --此常量已過時,僅出於向後相容性而包含。

  • static int VK_SEPARATOR --數字鍵盤分隔符鍵的常量。

  • static int VK_SHIFT

  • static int VK_SLASH -- 正斜槓鍵“/”的常量。

  • static int VK_SPACE

  • static int VK_STOP

  • static int VK_SUBTRACT

  • static int VK_T

  • static int VK_TAB

  • static int VK_U

  • static int VK_UNDEFINED -- 此值用於指示keyCode未知。

  • static int VK_UNDERSCORE --“_”鍵的常量。

  • static int VK_UNDO

  • static int VK_UP --非數字鍵盤向上箭頭鍵的常量。

  • static int VK_V

  • static int VK_W

  • static int VK_WINDOWS -- Microsoft Windows“Windows”鍵的常量。

  • static int VK_X

  • static int VK_Y

  • static int VK_Z

類建構函式

序號建構函式和描述
1

KeyEvent(Component source, int id, long when, int modifiers, int keyCode)

已過時。自 JDK1.1 起

2

KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)

構造一個 KeyEvent 物件。

3

KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)

類方法

序號方法和描述
1

char getKeyChar()

返回與此事件中鍵關聯的字元。

2

int getKeyCode()

返回與此事件中鍵關聯的整數 keyCode。

3

int getKeyLocation()

返回源此鍵盤事件的鍵的位置。

4

static String getKeyModifiersText(int modifiers)

返回一個描述修飾鍵(例如“Shift”或“Ctrl+Shift”)的字串。

5

static String getKeyText(int keyCode)

返回一個描述 keyCode 的字串,例如“HOME”、“F1”或“A”。

6

boolean isActionKey()

返回此事件中的鍵是否為“操作”鍵。

7

String paramString()

返回一個引數字串,用於標識此事件。

8

void setKeyChar(char keyChar)

設定 keyChar 值以指示邏輯字元。

9

void setKeyCode(int keyCode)

設定 keyCode 值以指示物理鍵。

10

void setModifiers(int modifiers)

已過時。自 JDK1.1.4 起

繼承的方法

此類繼承自以下類的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT MouseEvent 類

此事件指示在元件中發生了滑鼠操作。此低階事件由元件物件為滑鼠事件和滑鼠移動事件生成。

  • 滑鼠按鈕被按下

  • 滑鼠按鈕被釋放

  • 滑鼠按鈕被點選(按下並釋放)

  • 滑鼠游標進入元件幾何圖形的未遮擋部分

  • 滑鼠游標退出元件幾何圖形的未遮擋部分

  • 滑鼠被移動

  • 滑鼠被拖動

類宣告

以下是java.awt.event.MouseEvent類的宣告

public class MouseEvent
   extends InputEvent

欄位

以下是java.awt.event.MouseEvent類的欄位

  • static int BUTTON1 --指示滑鼠按鈕 #1;由 getButton() 使用

  • static int BUTTON2 --指示滑鼠按鈕 #2;由 getButton() 使用

  • static int BUTTON3 --指示滑鼠按鈕 #3;由 getButton() 使用

  • static int MOUSE_CLICKED --“滑鼠點選”事件

  • static int MOUSE_DRAGGED --“滑鼠拖動”事件

  • static int MOUSE_ENTERED --“滑鼠進入”事件

  • static int MOUSE_EXITED --“滑鼠退出”事件

  • static int MOUSE_FIRST --用於滑鼠事件的 ID 範圍中的第一個數字

  • static int MOUSE_LAST --用於滑鼠事件的 ID 範圍中的最後一個數字

  • static int MOUSE_MOVED --“滑鼠移動”事件

  • static int MOUSE_PRESSED --“滑鼠按下”事件

  • static int MOUSE_RELEASED --“滑鼠釋放”事件

  • static int MOUSE_WHEEL --“滑鼠滾輪”事件

  • static int NOBUTTON --指示沒有滑鼠按鈕;由 getButton() 使用

  • static int VK_WINDOWS -- Microsoft Windows“Windows”鍵的常量。

類建構函式

序號建構函式和描述
1

MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)

使用指定的源元件、型別、修飾符、座標和點選次數構造一個 MouseEvent 物件。

2

MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)

使用指定的源元件、型別、修飾符、座標和點選次數構造一個 MouseEvent 物件。

3

MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)

使用指定的源元件、型別、修飾符、座標、絕對座標和點選次數構造一個 MouseEvent 物件。

類方法

序號方法和描述
1

int getButton()

返回哪個(如果有)滑鼠按鈕的狀態已更改。

2

int getClickCount()

返回與此事件關聯的滑鼠點選次數。

3

Point getLocationOnScreen()

返回事件的絕對 x、y 位置。

4

static String getMouseModifiersText(int modifiers)

返回一個描述在事件期間按下的修飾鍵和滑鼠按鈕的字串,例如“Shift”或“Ctrl+Shift”。

5

Point getPoint()

返回相對於源元件的事件的 x、y 位置。

6

int getX()

返回相對於源元件的事件的水平 x 位置。

7

int getXOnScreen()

返回事件的絕對水平 x 位置。

8

int getY()

返回相對於源元件的事件的垂直 y 位置。

9

int getYOnScreen()

返回事件的絕對垂直 y 位置。

10

boolean isPopupTrigger() 返回此滑鼠事件是否為此平臺的彈出選單觸發器事件。

11

String paramString()

返回一個引數字串,用於標識此事件。

12

void translatePoint(int x, int y)

透過新增指定的 x(水平)和 y(垂直)偏移量將事件的座標轉換為新位置。

繼承的方法

此類繼承自以下類的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT TextEvent 類

此類的物件表示文字事件。當在文字欄位或文字區域中輸入字元時,會生成 TextEvent。TextEvent 例項不包含生成事件的文字元件中當前的字元,而是為我們提供了其他方法來檢索該資訊。

類宣告

以下是java.awt.event.TextEvent類的宣告

public class TextEvent
   extends AWTEvent

欄位

以下是java.awt.event.TextEvent類的欄位

  • static int TEXT_FIRST --用於文字事件的 ID 範圍中的第一個數字。

  • static int TEXT_LAST --用於文字事件的 ID 範圍中的最後一個數字。

  • static int TEXT_VALUE_CHANGED --此事件 ID 指示物件的文字已更改。

類建構函式

<0tr>
序號建構函式和描述
1

TextEvent(Object source, int id)

構造一個 TextEvent 物件。

類方法

序號方法和描述
1

String paramString()

返回一個引數字串,用於標識此文字事件。

繼承的方法

此類繼承自以下類的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT WindowEvent 類

此類的物件表示視窗狀態的更改。當視窗開啟、關閉、啟用、停用、圖示化或取消圖示化,或當焦點轉移到視窗中或從視窗中轉移時,視窗物件會生成此低階事件。

類宣告

以下是java.awt.event.WindowEvent類的宣告

public class WindowEvent
   extends ComponentEvent

欄位

以下是java.awt.event.WindowEvent類的欄位

  • static int WINDOW_ACTIVATED --視窗啟用事件型別。

  • static int WINDOW_CLOSED --視窗關閉事件。

  • static int WINDOW_CLOSING --“視窗即將關閉”事件。

  • static int WINDOW_DEACTIVATED --視窗停用事件型別。

  • static int WINDOW_DEICONIFIED --視窗取消圖示化事件型別。

  • static int WINDOW_FIRST --用於視窗事件的 ID 範圍中的第一個數字。

  • static int WINDOW_GAINED_FOCUS --視窗獲得焦點事件型別。

  • static int WINDOW_ICONIFIED --視窗圖示化事件。

  • static int WINDOW_LAST --用於視窗事件的 ID 範圍中的最後一個數字。

  • static int WINDOW_LOST_FOCUS --視窗失去焦點事件型別。

  • static int WINDOW_OPENED --視窗開啟事件。

  • static int WINDOW_STATE_CHANGED --視窗狀態更改事件型別。

類建構函式

<0tr>
序號建構函式和描述
1

WindowEvent(Window source, int id)

構造一個 WindowEvent 物件。

2

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

使用指定的先前和新的視窗狀態構造一個 WindowEvent 物件。

3

WindowEvent(Window source, int id, Window opposite)

使用指定的相反視窗構造一個 WindowEvent 物件。

4

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

構造一個 WindowEvent 物件。

類方法

序號方法和描述
1

int getNewState()

對於 WINDOW_STATE_CHANGED 事件,返回視窗的新狀態。

2

int getOldState()

對於 WINDOW_STATE_CHANGED 事件,返回視窗的先前狀態。

3

Window getOppositeWindow()

返回參與此焦點或啟用更改的其他視窗。

4

Window getWindow()

返回事件的發起者。

5

String paramString()

返回一個引數字串,用於標識此事件。

繼承的方法

此類繼承自以下類的方法

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT AdjustmentEvent 類

簡介

AdjustmentEvent表示由 Adjustable 物件發出的調整事件。

類宣告

以下是java.awt.event.AdjustmentEvent類的宣告

public class AdjustmentEvent
   extends AWTEvent

欄位

以下是java.awt.Component類的欄位

  • static int ADJUSTMENT_FIRST --標記調整事件 ID 範圍的第一個整數 ID。

  • static int ADJUSTMENT_LAST --標記調整事件 ID 範圍的最後一個整數 ID。

  • static int ADJUSTMENT_VALUE_CHANGED --調整值更改事件。

  • static int BLOCK_DECREMENT --塊遞減調整型別。

  • static int BLOCK_INCREMENT --塊遞增調整型別。

  • static int TRACK --絕對跟蹤調整型別。

  • static int UNIT_DECREMENT --單位遞減調整型別。

  • static int UNIT_INCREMENT --單位遞增調整型別。

類建構函式

序號建構函式和描述
1

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

使用指定的 Adjustable 源、事件型別、調整型別和值構造一個 AdjustmentEvent 物件。

2

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

使用指定的 Adjustable 源、事件型別、調整型別和值構造一個 AdjustmentEvent 物件。

類方法

序號方法和描述
1

Adjustable getAdjustable()

返回此事件起源的 Adjustable 物件。

2

int getAdjustmentType()

返回導致值更改事件的調整型別。

3

int getValue()

返回調整事件中的當前值。

4

boolean getValueIsAdjusting()

如果這是多個調整事件之一,則返回 true。

5

String paramString()

返回表示此事件狀態的字串。

繼承的方法

此介面繼承自以下類的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT ComponentEvent 類

簡介

ComponentEvent表示元件移動、大小更改或可見性更改

類宣告

以下是java.awt.event.ComponentEvent類的宣告

public class ComponentEvent
   extends AWTEvent

欄位

以下是java.awt.Component類的欄位

  • static int COMPONENT_FIRST --用於元件事件的 ID 範圍中的第一個數字。

  • static int COMPONENT_HIDDEN --此事件指示元件已呈隱藏狀態。

  • static int COMPONENT_LAST --用於元件事件的 ID 範圍中的最後一個數字。

  • static int COMPONENT_MOVED --此事件指示元件的位置已更改。

  • static int COMPONENT_RESIZED -- 此事件表示元件的大小發生了變化。

  • static int COMPONENT_SHOWN -- 此事件表示元件變得可見。

類建構函式

序號建構函式和描述
1

ComponentEvent(Component source, int id)

構造一個 ComponentEvent 物件。

類方法

序號方法和描述
1

Component getComponent()

返回事件的發起者。

2

String paramString()

返回一個引數字串,用於標識此事件。

繼承的方法

此介面繼承自以下類的方法

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT ContainerEvent 類

簡介

ContainerEvent 類表示容器的內容發生了變化,因為新增或刪除了元件。

類宣告

以下是java.awt.event.ContainerEvent類的宣告

public class ContainerEvent
   extends ComponentEvent

欄位

以下是java.awt.Component類的欄位

  • static int COMPONENT_ADDED -- 此事件表示元件已新增到容器中。

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

  • static int CONTAINER_FIRST -- 用於容器事件的 ID 範圍中的第一個數字。

  • static int CONTAINER_LAST -- 用於容器事件的 ID 範圍中的最後一個數字。

類建構函式

類方法

序號建構函式和描述
1

ContainerEvent(Component source, int id, Component child)

構造一個 ContainerEvent 物件。

序號方法和描述
1

Component getChild()

返回受事件影響的元件。

2

Container getContainer()

返回事件的發起者。

3

String paramString()

返回一個引數字串,用於標識此事件。

繼承的方法

此類繼承自以下類的方法

  • java.awt.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT MouseMotionEvent 類

簡介

MouseMotionEvent 介面指示在元件中發生了滑鼠操作。當滑鼠被拖動或移動時,元件物件會生成此低階事件。

類宣告

以下是java.awt.event.MouseMotionEvent類的宣告

public class MouseMotionEvent
   extends InputEvent

介面方法

序號方法和描述
1

void mouseDragged(MouseEvent e)

在元件上按下滑鼠按鈕然後拖動時呼叫。

2

void mouseMoved(MouseEvent e)

當滑鼠游標已移動到元件上但未按下任何按鈕時呼叫。

繼承的方法

此介面繼承自以下類的方法

  • java.awt.event.InputEvent

  • java.awt.event.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT PaintEvent 類

簡介

PaintEvent 類用於確保 paint/update 方法呼叫與從事件佇列傳遞的其他事件一起序列化。

類宣告

以下是java.awt.event.PaintEvent類的宣告

public class PaintEvent
   extends ComponentEvent

欄位

以下是java.awt.Component類的欄位

  • static int PAINT -- 繪製事件型別。

  • static int PAINT_FIRST -- 標記繪製事件 ID 範圍的第一個整數 ID。

  • static int PAINT_LAST -- 標記繪製事件 ID 範圍的最後一個整數 ID。

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

類建構函式

序號建構函式和描述
1

PaintEvent(Component source, int id, Rectangle updateRect)

使用指定的源元件和型別構造一個 PaintEvent 物件。

類方法

序號方法和描述
1

Rectangle getUpdateRect()

返回表示需要重新繪製的區域的矩形,以響應此事件。

2

String paramString()

返回一個引數字串,用於標識此事件。

3

void setUpdateRect(Rectangle updateRect)

設定表示需要重新繪製的區域的矩形,以響應此事件。

繼承的方法

此類繼承自以下類的方法

  • java.awt.ComponentEvent

  • java.awt.AWTEvent

  • java.util.EventObject

  • java.lang.Object

AWT 事件監聽器

事件監聽器表示負責處理事件的介面。Java 為我們提供了各種事件監聽器類,但我們將討論那些更常用的類。每個事件監聽器方法都有一個引數作為物件,該物件是 EventObject 類的子類。例如,滑鼠事件監聽器方法將接受 MouseEvent 的例項,其中 MouseEvent 派生自 EventObject。

EventListner 介面

這是一個標記介面,每個監聽器介面都必須擴充套件它。此類在 java.util 包中定義。

類宣告

以下是java.util.EventListener介面的宣告

public interface EventListener

AWT 事件監聽器介面

以下是常用事件監聽器的列表。

AWT ActionListener 介面

處理 ActionEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addActionListener() 方法註冊該物件。當動作事件發生時,將呼叫該物件的 actionPerformed 方法。

介面宣告

以下是java.awt.event.ActionListener介面的宣告

public interface ActionListener
   extends EventListener

介面方法

序號方法和描述
1

void actionPerformed(ActionEvent e)

當發生操作時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

ActionListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showActionListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showActionListenerDemo(){
      headerLabel.setText("Listener in action: ActionListener");      

      ScrollPane panel = new ScrollPane();      
      panel.setBackground(Color.magenta);            

      Button okButton = new Button("OK");

      okButton.addActionListener(new CustomActionListener());        
      panel.add(okButton);
      controlPanel.add(panel);

      mainFrame.setVisible(true); 
   }

   class CustomActionListener implements ActionListener{

      public void actionPerformed(ActionEvent e) {
         statusLabel.setText("Ok Button Clicked.");
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT ActionListener

AWT ComponentListener 介面

處理 ComponentEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addComponentListener() 方法註冊該物件。元件事件僅出於資訊目的而引發。

介面宣告

以下是java.awt.event.ComponentListener介面的宣告

public interface ComponentListener
   extends EventListener

介面方法

序號方法和描述
1

void componentHidden(ComponentEvent e)

當元件變得不可見時呼叫。

2

void componentMoved(ComponentEvent e)

當元件的位置發生變化時呼叫。

3

void componentResized(ComponentEvent e)

當元件的大小發生變化時呼叫。

4

void componentShown(ComponentEvent e)

當元件變得可見時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

ComponentListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showComponentListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showComponentListenerDemo(){
      headerLabel.setText("Listener in action: ComponentListener");      

      ScrollPane panel = new ScrollPane();      
      panel.setBackground(Color.magenta);            

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

      msglabel.addComponentListener(new CustomComponentListener());      
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }

   class CustomComponentListener implements ComponentListener {

      public void componentResized(ComponentEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " resized. ");
      }

      public void componentMoved(ComponentEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " moved. ");
      }

      public void componentShown(ComponentEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " shown. ");
      }

      public void componentHidden(ComponentEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " hidden. ");
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT ComponentListener

AWT ItemListener 介面

處理 ItemEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addItemListener() 方法註冊該物件。當動作事件發生時,將呼叫該物件的 itemStateChanged 方法。

介面宣告

以下是java.awt.event.ItemListener介面的宣告

public interface ItemListener
   extends EventListener

介面方法

序號方法和描述
1

void itemStateChanged(ItemEvent e)

當用戶選擇或取消選擇專案時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

ItemListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showItemListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showItemListenerDemo(){
      headerLabel.setText("Listener in action: ItemListener");      
      Checkbox chkApple = new Checkbox("Apple");
      Checkbox chkMango = new Checkbox("Mango");
      Checkbox chkPeer = new Checkbox("Peer");
      
      chkApple.addItemListener(new CustomItemListener());
      chkMango.addItemListener(new CustomItemListener());
      chkPeer.addItemListener(new CustomItemListener());

      controlPanel.add(chkApple);
      controlPanel.add(chkMango);
      controlPanel.add(chkPeer);               
      mainFrame.setVisible(true); 
   }

   class CustomItemListener implements ItemListener {
      public void itemStateChanged(ItemEvent e) {
         statusLabel.setText(e.getItem()
         +" Checkbox: " 
         + (e.getStateChange()==1?"checked":"unchecked"));
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT ItemListener

AWT KeyListener 介面

處理 KeyEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addKeyListener() 方法註冊該物件。

介面宣告

以下是java.awt.event.KeyListener介面的宣告

public interface KeyListener
   extends EventListener

介面方法

序號方法和描述
1

void keyPressed(KeyEvent e)

當按下鍵時呼叫。

2

void keyReleased(KeyEvent e)

當釋放鍵時呼叫。

3

void keyTyped(KeyEvent e)

當鍵入鍵時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

KeyListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

public class AwtListenerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private TextField textField;
   
   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showKeyListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showKeyListenerDemo(){
      headerLabel.setText("Listener in action: KeyListener");      

      textField  = new TextField(10);

      textField.addKeyListener(new CustomKeyListener());
      Button okButton = new Button("OK");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Entered text: " + textField.getText());                
         }
      });

      controlPanel.add(textField);
      controlPanel.add(okButton);    
      mainFrame.setVisible(true);  
   }

   class CustomKeyListener implements KeyListener{
      public void keyTyped(KeyEvent e) {           
      }

      public void keyPressed(KeyEvent e) {
         if(e.getKeyCode() == KeyEvent.VK_ENTER){
            statusLabel.setText("Entered text: " + textField.getText());
         }
      }

      public void keyReleased(KeyEvent e) {            
      }    
   } 
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT KeyListener

AWT MouseListener 介面

處理 MouseEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addMouseListener() 方法註冊該物件。

介面宣告

以下是java.awt.event.MouseListener介面的宣告

public interface MouseListener
   extends EventListener

介面方法

序號方法和描述
1

void mouseClicked(MouseEvent e)

當在元件上單擊滑鼠按鈕(按下並釋放)時呼叫。

2

void mouseEntered(MouseEvent e)

當滑鼠進入元件時呼叫。

3

void mouseExited(MouseEvent e)

當滑鼠退出元件時呼叫。

4

void mousePressed(MouseEvent e)

當在元件上按下滑鼠按鈕時呼叫。

5

void mouseReleased(MouseEvent e)

當在元件上釋放滑鼠按鈕時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

MouseListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showMouseListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMouseListenerDemo(){
      headerLabel.setText("Listener in action: MouseListener");      

      Panel panel = new Panel();      
      panel.setBackground(Color.magenta);
      panel.setLayout(new FlowLayout());        
      panel.addMouseListener(new CustomMouseListener());

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

      msglabel.addMouseListener(new CustomMouseListener());
      panel.add(msglabel);

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }

   class CustomMouseListener implements MouseListener{

      public void mouseClicked(MouseEvent e) {
         statusLabel.setText("Mouse Clicked: ("
         +e.getX()+", "+e.getY() +")");
      }   

      public void mousePressed(MouseEvent e) {
      }

      public void mouseReleased(MouseEvent e) {
      }

      public void mouseEntered(MouseEvent e) {
      }

      public void mouseExited(MouseEvent e) {
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT MouseListener

AWT TextListener 介面

處理 TextEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addTextListener() 方法註冊該物件。

介面宣告

以下是java.awt.event.TextListener介面的宣告

public interface TextListener
   extends EventListener

介面方法

序號方法和描述
1

void textValueChanged(TextEvent e)

當文字的值發生變化時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

TextListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

public class AwtListenerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private TextField textField;

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showTextListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showTextListenerDemo(){
      headerLabel.setText("Listener in action: TextListener");      

      textField  = new TextField(10);

      textField.addTextListener(new CustomTextListener());
      Button okButton = new Button("OK");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Entered text: " 
            + textField.getText());                
         }
      });

      controlPanel.add(textField);
      controlPanel.add(okButton);    
      mainFrame.setVisible(true);  
   }

   class CustomTextListener implements TextListener {
      public void textValueChanged(TextEvent e) {
         statusLabel.setText("Entered text: " + textField.getText());               
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT TextListener

AWT WindowListener 介面

處理 WindowEvent 的類應該實現此介面。該類的物件必須與元件註冊。可以使用 addWindowListener() 方法註冊該物件。

介面宣告

以下是java.awt.event.WindowListener介面的宣告

public interface WindowListener
   extends EventListener

介面方法

序號方法和描述
1

void windowActivated(WindowEvent e)

當視窗設定為活動視窗時呼叫。

2

void windowClosed(WindowEvent e)

當視窗因在視窗上呼叫 dispose 而關閉時呼叫。

3

void windowClosing(WindowEvent e)

當用戶嘗試從視窗的系統選單關閉視窗時呼叫。

4

void windowDeactivated(WindowEvent e)

當視窗不再是活動視窗時呼叫。

5

void windowDeiconified(WindowEvent e)

當視窗從最小化狀態更改為正常狀態時呼叫。

6

void windowIconified(WindowEvent e)

當視窗從正常狀態更改為最小化狀態時呼叫。

7

void windowOpened(WindowEvent e)

第一次使視窗可見時呼叫。

繼承的方法

此介面繼承自以下介面

  • java.awt.EventListener

WindowListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showWindowListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showWindowListenerDemo(){
      headerLabel.setText("Listener in action: WindowListener");      

      Button okButton = new Button("OK");

      aboutFrame = new Frame();
      aboutFrame.setSize(300,200);;
      aboutFrame.setTitle("WindowListener Demo");
      aboutFrame.addWindowListener(new CustomWindowListener());

      Label msgLabel = new Label("Welcome to tutorialspoint.");
      msgLabel.setAlignment(Label.CENTER);
      msgLabel.setSize(100,100);
      aboutFrame.add(msgLabel);
      aboutFrame.setVisible(true);
   }

   class CustomWindowListener implements WindowListener {
      public void windowOpened(WindowEvent e) {
      }

      public void windowClosing(WindowEvent e) {
         aboutFrame.dispose();      
      }
      
      public void windowClosed(WindowEvent e) {
      }

      public void windowIconified(WindowEvent e) {
      }

      public void windowDeiconified(WindowEvent e) {
      }

      public void windowActivated(WindowEvent e) {
      }

      public void windowDeactivated(WindowEvent e) {
      }
   }   
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT WindowListener

AWT AdjustmentListener 介面

簡介

AdjustmentListener 介面用於接收調整事件。處理調整事件的類需要實現此介面。

類宣告

以下是java.awt.event.AdjustmentListener介面的宣告

public interface AdjustmentListener
extends EventListener

介面方法

序號方法和描述
1

void adjustmentValueChanged(AdjustmentEvent e)

當可調整物件的的值發生變化時呼叫。

繼承的方法

此類繼承自以下介面

  • java.awt.event.EventListener

AdjustmentListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showAdjustmentListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showAdjustmentListenerDemo(){
      headerLabel.setText("Listener in action: AdjustmentListener");      

      ScrollPane panel = new ScrollPane();      
      panel.setBackground(Color.magenta);
      panel.getHAdjustable().addAdjustmentListener(new CustomAdjustmentListener());

      Label msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);   
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
      panel.add(msglabel);
      
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }

   class CustomAdjustmentListener implements AdjustmentListener {
      public void adjustmentValueChanged(AdjustmentEvent e) {
         statusLabel.setText("Adjustment value: "+Integer.toString(e.getValue()));
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT AdjustmentListener

AWT ContainerListener 介面

簡介

ContainerListener 介面用於接收容器事件。處理容器事件的類需要實現此介面。

類宣告

以下是java.awt.event.ContainerListener介面的宣告

public interface ContainerListener
extends EventListener

介面方法

序號方法和描述
1

void componentAdded(ContainerEvent e)

當元件已新增到容器中時呼叫。

2

void componentRemoved(ContainerEvent e)

當元件已從容器中移除時呼叫。

繼承的方法

此類繼承自以下介面

  • java.awt.event.EventListener

AdjustmentListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showContainerListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showContainerListenerDemo(){
      headerLabel.setText("Listener in action: ContainerListener");      

      ScrollPane panel = new ScrollPane();      
      panel.setBackground(Color.magenta);            
      panel.addContainerListener(new CustomContainerListener());  

      Label msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");
      panel.add(msglabel);
   
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }

   class CustomContainerListener implements ContainerListener {
      public void componentAdded(ContainerEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " added. ");
      }

      public void componentRemoved(ContainerEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " removed. ");
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT ContainerListener

AWT MouseMotionListener 介面

簡介

MouseMotionListener 介面用於接收元件上的滑鼠移動事件。處理滑鼠移動事件的類需要實現此介面。

類宣告

以下是java.awt.event.MouseMotionListener介面的宣告

public interface MouseMotionListener
extends EventListener

介面方法

序號方法和描述
1

void mouseDragged(MouseEvent e)

在元件上按下滑鼠按鈕然後拖動時呼叫。

2

void mouseMoved(MouseEvent e)

當滑鼠游標已移動到元件上但未按下任何按鈕時呼叫。

繼承的方法

此類繼承自以下介面

  • java.awt.event.EventListener

MouseMotionListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showMouseMotionListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMouseMotionListenerDemo(){
      headerLabel.setText("Listener in action: MouseMotionListener");      

      Panel panel = new Panel();      
      panel.setBackground(Color.magenta);
      panel.setLayout(new FlowLayout());        
      panel.addMouseMotionListener(new CustomMouseMotionListener());

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }   

   class CustomMouseMotionListener implements MouseMotionListener {

      public void mouseDragged(MouseEvent e) {
         statusLabel.setText("Mouse Dragged: ("+e.getX()+", "+e.getY() +")");
      }

      public void mouseMoved(MouseEvent e) {
         statusLabel.setText("Mouse Moved: ("+e.getX()+", "+e.getY() +")");
      }    
   }    
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT MouseMotionListener

AWT FocusListener 介面

簡介

FocusListener 介面用於接收鍵盤焦點事件。處理焦點事件的類需要實現此介面。

類宣告

以下是java.awt.event.FocusListener介面的宣告

public interface FocusListener
extends EventListener

介面方法

序號方法和描述
1

void focusGained(FocusEvent e)

當元件獲得鍵盤焦點時呼叫。

2

void focusLost(FocusEvent e)

當元件失去鍵盤焦點時呼叫。

繼承的方法

此類繼承自以下介面

  • java.awt.event.EventListener

FocusListener 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtListenerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtListenerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtListenerDemo  awtListenerDemo = new AwtListenerDemo();  
      awtListenerDemo.showFocusListenerDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
   
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

       
   private void showFocusListenerDemo(){

      headerLabel.setText("Listener in action: FocusListener");      

      Button okButton = new Button("OK");
      Button cancelButton = new Button("Cancel");
      okButton.addFocusListener(new CustomFocusListener());  
      cancelButton.addFocusListener(new CustomFocusListener());  

      controlPanel.add(okButton);
      controlPanel.add(cancelButton);     
      mainFrame.setVisible(true);  
   }

   class CustomFocusListener implements FocusListener{
      public void focusGained(FocusEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " gained focus. ");
      }

      public void focusLost(FocusEvent e) {
         statusLabel.setText(statusLabel.getText() 
         + e.getComponent().getClass().getSimpleName() + " lost focus. ");
      }
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT focusListener

AWT 事件介面卡

介面卡是用於接收各種事件的抽象類。這些類中的方法為空。這些類存在是為了方便建立監聽器物件。

AWT 介面卡

以下是監聽 AWT 中 GUI 事件時常用的介面卡列表。

AWT FocusAdapter 類

簡介

FocusAdapter 類是一個用於接收鍵盤焦點事件的抽象(介面卡)類。此類中的所有方法都為空。此類是用於建立監聽器物件的便捷類。

類宣告

以下是java.awt.event.FocusAdapter類的宣告

public abstract class FocusAdapter
   extends Object
      implements FocusListener

類建構函式

序號建構函式和描述
1

FocusAdapter()

類方法

序號方法和描述
1

void focusGained(FocusEvent e)

當元件獲得鍵盤焦點時呼叫。

2

focusLost(FocusEvent e)

當元件失去鍵盤焦點時呼叫。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

FocusAdapter 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtAdapterDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtAdapterDemo  awtAdapterDemo = new AwtAdapterDemo();        
      awtAdapterDemo.showFocusAdapterDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showFocusAdapterDemo(){

      headerLabel.setText("Listener in action: FocusAdapter");      

      Button okButton = new Button("OK");
      Button cancelButton = new Button("Cancel");
      okButton.addFocusListener(new FocusAdapter(){
         public void focusGained(FocusEvent e) {
            statusLabel.setText(statusLabel.getText() 
            + e.getComponent().getClass().getSimpleName() 
            + " gained focus. ");
         }
      });  
      
      cancelButton.addFocusListener(new FocusAdapter(){
         public void focusLost(FocusEvent e) {
            statusLabel.setText(statusLabel.getText() 
            + e.getComponent().getClass().getSimpleName() 
            + " lost focus. ");
         }
      });  
      
      controlPanel.add(okButton);
      controlPanel.add(cancelButton);     
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT FocusAdapter

AWT KeyAdapter 類

簡介

KeyAdapter 類是一個用於接收鍵盤事件的抽象(介面卡)類。此類中的所有方法都為空。此類是用於建立監聽器物件的便捷類。

類宣告

以下是java.awt.event.KeyAdapter類的宣告

public abstract class KeyAdapter
   extends Object
      implements KeyListener

類建構函式

序號建構函式和描述
1

KeyAdapter()

類方法

序號方法和描述
1

void keyPressed(KeyEvent e)

當按下鍵時呼叫。

2

void keyReleased(KeyEvent e)

當釋放鍵時呼叫。

3

void keyTyped(KeyEvent e)

當鍵入鍵時呼叫。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

KeyAdapter 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtAdapterDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtAdapterDemo  awtAdapterDemo = new AwtAdapterDemo();        
      awtAdapterDemo.showKeyAdapterDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showKeyAdapterDemo(){
      headerLabel.setText("Listener in action: KeyAdapter");      

      final TextField textField = new TextField(10);

      textField.addKeyListener(new KeyAdapter() {
         public void keyPressed(KeyEvent e) {                
            if(e.getKeyCode() == KeyEvent.VK_ENTER){
               statusLabel.setText("Entered text: " + textField.getText());
            }
         }        
      });
      Button okButton = new Button("OK");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("Entered text: " + textField.getText());                
         }
      });

      controlPanel.add(textField);
      controlPanel.add(okButton);    
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT KeyAdapter

AWT MouseAdapter 類

簡介

MouseAdapter 類是一個用於接收滑鼠事件的抽象(介面卡)類。此類中的所有方法都為空。此類是用於建立監聽器物件的便捷類。

類宣告

以下是java.awt.event.MouseAdapter類的宣告

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

類建構函式

序號建構函式和描述
1

MouseAdapter()

類方法

序號方法和描述
1

void mouseClicked(MouseEvent e)

當在元件上單擊滑鼠按鈕(按下並釋放)時呼叫。

2

void mouseDragged(MouseEvent e)

在元件上按下滑鼠按鈕然後拖動時呼叫。

3

void mouseEntered(MouseEvent e)

當滑鼠進入元件時呼叫。

4

void mouseExited(MouseEvent e)

當滑鼠退出元件時呼叫。

5

void mouseMoved(MouseEvent e)

當滑鼠游標已移動到元件上但未按下任何按鈕時呼叫。

6

void mousePressed(MouseEvent e)

當在元件上按下滑鼠按鈕時呼叫。

7

void mouseReleased(MouseEvent e)

當在元件上釋放滑鼠按鈕時呼叫。

8

void mouseWheelMoved(MouseWheelEvent e)

當滑鼠滾輪旋轉時呼叫。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

MouseAdapter 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtAdapterDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtAdapterDemo  awtAdapterDemo = new AwtAdapterDemo();  
      awtAdapterDemo.showMouseAdapterDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMouseAdapterDemo(){
      headerLabel.setText("Listener in action: MouseAdapter");      

      Panel panel = new Panel();      
      panel.setBackground(Color.magenta);
      panel.setLayout(new FlowLayout());        
      panel.addMouseListener(new MouseAdapter(){
         public void mouseClicked(MouseEvent e) {
            statusLabel.setText("Mouse Clicked: ("
            +e.getX()+", "+e.getY() +")");
         }                
      });

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

      msglabel.addMouseListener(new MouseAdapter(){
         public void mouseClicked(MouseEvent e) {
            statusLabel.setText("Mouse Clicked: ("
            +e.getX()+", "+e.getY() +")");
         }                
      });
      panel.add(msglabel);
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT MouseAdapter

AWT MouseMotionAdapter 類

簡介

MouseMotionAdapter 類是一個用於接收滑鼠移動事件的抽象(介面卡)類。此類中的所有方法都為空。此類是用於建立監聽器物件的便捷類。

類宣告

以下是java.awt.event.MouseMotionAdapter類的宣告

public abstract class MouseMotionAdapter
   extends Object
      implements MouseMotionListener

類建構函式

序號建構函式和描述
1

MouseMotionAdapter()

類方法

序號方法和描述
1

void mouseDragged(MouseEvent e)

在元件上按下滑鼠按鈕然後拖動時呼叫。

2

void mouseMoved(MouseEvent e)

當滑鼠游標已移動到元件上但未按下任何按鈕時呼叫。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

MouseMotionAdapter 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtAdapterDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtAdapterDemo  awtAdapterDemo = new AwtAdapterDemo();        
      awtAdapterDemo.showMouseMotionAdapterDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMouseMotionAdapterDemo(){
      headerLabel.setText("Listener in action: MouseMotionAdapter");      

      Panel panel = new Panel();      
      panel.setBackground(Color.magenta);
      panel.setLayout(new FlowLayout());        
      panel.addMouseMotionListener(new MouseMotionAdapter(){
         public void mouseMoved(MouseEvent e) {
            statusLabel.setText("Mouse Moved: ("+e.getX()+", "+e.getY() +")");
         }                
      });

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT MouseMotionAdapter

AWT WindowAdapter 類

簡介

WindowAdapter 類是一個用於接收視窗事件的抽象(介面卡)類。此類中的所有方法都為空。此類是用於建立監聽器物件的便捷類。

類宣告

以下是java.awt.event.WindowAdapter類的宣告

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

類建構函式

序號建構函式和描述
1

WindowAdapter()

類方法

序號方法和描述
1

void windowActivated(WindowEvent e)

當視窗被啟用時呼叫。

2

void windowClosed(WindowEvent e)

當視窗已關閉時呼叫。

3

void windowClosing(WindowEvent e)

當視窗正在關閉過程中時呼叫。

4

void windowDeactivated(WindowEvent e)

當視窗被停用時呼叫。

5

void windowDeiconified(WindowEvent e)

當視窗被取消最小化時呼叫。

6

void windowGainedFocus(WindowEvent e)

當視窗被設定為焦點視窗時呼叫,這意味著視窗或其子元件將接收鍵盤事件。

7

void windowIconified(WindowEvent e)

當視窗被最小化時呼叫。

8

void windowLostFocus(WindowEvent e)

當視窗不再是焦點視窗時呼叫,這意味著鍵盤事件將不再傳遞到視窗或其任何子元件。

9

void windowOpened(WindowEvent e)

當視窗被開啟時呼叫。

10

void windowStateChanged(WindowEvent e)

當視窗狀態發生更改時呼叫。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

WindowAdapter 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtAdapterDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtAdapterDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtAdapterDemo  awtAdapterDemo = new AwtAdapterDemo();        
      awtAdapterDemo.showWindowAdapterDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showWindowAdapterDemo(){
      headerLabel.setText("Listener in action: WindowAdapter");      

      Button okButton = new Button("OK");

      final Frame aboutFrame = new Frame();
      aboutFrame.setSize(300,200);;
      aboutFrame.setTitle("WindowAdapter Demo");
      aboutFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent){
               aboutFrame.dispose();
         }        
      });    
      Label msgLabel = new Label("Welcome to tutorialspoint.");
      msgLabel.setAlignment(Label.CENTER);
      msgLabel.setSize(100,100);
      aboutFrame.add(msgLabel);
      aboutFrame.setVisible(true);
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT WindowAdapter

AWT 佈局

簡介

佈局是指容器內元件的排列方式。換句話說,就是將元件放置在容器內的特定位置。佈局控制元件的任務由佈局管理器自動完成。

佈局管理器

佈局管理器會自動將所有元件放置在容器內。如果我們不使用佈局管理器,元件也會由預設的佈局管理器進行定位。也可以手動佈局控制元件,但由於以下兩個原因,這會變得非常困難。

  • 處理容器內大量控制元件非常繁瑣。

  • 通常,當我們需要排列元件時,不會給出元件的寬度和高度資訊。

Java 為我們提供了各種佈局管理器來定位控制元件。諸如大小、形狀和排列等屬性在不同的佈局管理器之間有所不同。當 Applet 或應用程式視窗的大小發生變化時,元件的大小、形狀和排列也會相應地發生變化,即佈局管理器會適應 AppletViewer 或應用程式視窗的尺寸。

佈局管理器與每個容器物件相關聯。每個佈局管理器都是實現 LayoutManager 介面的類的物件。

以下是定義佈局管理器功能的介面和類。

AWT LayoutManager 介面

簡介

介面LayoutManager 用於定義知道如何佈局容器的類的介面。

類宣告

以下是java.awt.LayoutManager 介面的宣告

public interface LayoutManager

介面方法

序號方法和描述
1

void addLayoutComponent(String name, Component comp)

如果佈局管理器使用每個元件的字串,則將元件 comp 新增到佈局中,並將其與 name 指定的字串相關聯。

2

void layoutContainer(Container parent)

佈局指定的容器。

3

Dimension minimumLayoutSize(Container parent)

根據包含的元件計算指定容器的最小尺寸。

4

Dimension preferredLayoutSize(Container parent)

根據包含的元件計算指定容器的首選尺寸。

5

void removeLayoutComponent(Component comp)

從佈局中移除指定的元件。

AWT LayoutManager2 介面

簡介

介面LayoutManger 用於定義知道如何基於佈局約束物件佈局容器的類的介面。

類宣告

以下是java.awt.LayoutManager2 介面的宣告

public interface LayoutManger2
   extends LayoutManager

介面方法

序號方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

使用指定的約束物件將指定的元件新增到佈局中。

2

float getLayoutAlignmentX(Container target)

返回沿 x 軸的對齊方式。

3

float getLayoutAlignmentY(Container target)

返回沿 y 軸的對齊方式。

4

void invalidateLayout(Container target)

使佈局無效,表示如果佈局管理器已快取資訊,則應將其丟棄。

5

Dimension maximumLayoutSize(Container target)

根據包含的元件計算指定容器的最大尺寸。

AWT BorderLayout 類

簡介

BorderLayout 將元件排列在五個區域中:東、西、北、南和中。每個區域只能包含一個元件,並且每個區域中的每個元件都由相應的常量 NORTH、SOUTH、EAST、WEST 和 CENTER 標識。

類宣告

以下是java.awt.BorderLayout 類的宣告

public class BorderLayout
   extends Object
      implements LayoutManager2, Serializable

欄位

以下是java.awt.BorderLayout 類的欄位

  • static String AFTER_LAST_LINE -- PAGE_END 的同義詞。

  • static String AFTER_LINE_ENDS -- LINE_END 的同義詞。

  • static String BEFORE_FIRST_LINE -- PAGE_START 的同義詞。

  • static String BEFORE_LINE_BEGINS -- LINE_START 的同義詞。

  • static String CENTER -- 中心佈局約束(容器的中間)。

  • static String EAST -- 東部佈局約束(容器的右側)。

  • static String LINE_END -- 元件位於佈局的行方向末尾。

  • static String LINE_START -- 元件位於佈局的行方向開頭。

  • static String NORTH -- 北部佈局約束(容器的頂部)。

  • static String PAGE_END -- 元件位於佈局內容的最後一行之後。

  • static String PAGE_START -- 元件位於佈局內容的第一行之前。

  • static String SOUTH -- 南部佈局約束(容器的底部)。

  • static String WEST -- 西部佈局約束(容器的左側)。

類建構函式

序號建構函式和描述
1

BorderLayout()

構造一個新的邊框佈局,元件之間沒有間隙。

2

BorderLayout(int hgap, int vgap)

構造一個新的邊框佈局,元件之間具有指定的間隙。

類方法

序號方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

使用指定的約束物件將指定的元件新增到佈局中。

2

void addLayoutComponent(String name, Component comp)

如果佈局管理器使用每個元件的字串,則將元件 comp 新增到佈局中,並將其與 name 指定的字串相關聯。

3

int getHgap()

返回元件之間的水平間隙。

4

float getLayoutAlignmentX(Container parent)

返回沿 x 軸的對齊方式。

5

float getLayoutAlignmentY(Container parent)

返回沿 y 軸的對齊方式。

6

int getVgap()

返回元件之間的垂直間隙。

7

void invalidateLayout(Container target)

使佈局無效,表示如果佈局管理器已快取資訊,則應將其丟棄。

8

void layoutContainer(Container target)


9

Dimension maximumLayoutSize(Container target)

返回給定指定目標容器中元件的此佈局的最大尺寸。

10

Dimension minimumLayoutSize(Container target)

使用此佈局管理器確定目標容器的最小大小。

11

Dimension preferredLayoutSize(Container target)

根據容器中的元件使用此佈局管理器確定目標容器的首選大小。

12

void removeLayoutComponent(Component comp)

從此邊框佈局中移除指定的元件。

13

void setHgap(int hgap)

設定元件之間的水平間隙。

14

void setVgap(int vgap)

設定元件之間的垂直間隙。

15

String toString()

返回此邊框佈局狀態的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

BorderLayout 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showBorderLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

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

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

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT BorderLayout

AWT CardLayout 類

簡介

CardLayout 將容器中的每個元件都排列成卡片。一次只能看到一張卡片,容器充當卡片堆疊。

類宣告

以下是java.awt.CardLayout 類的宣告

public class CardLayout
   extends Object
      implements LayoutManager2, Serializable

類建構函式

序號建構函式和描述
1

CardLayout()

建立一個新的卡片佈局,間隙大小為零。

2

CardLayout(int hgap, int vgap)

使用指定的水平和垂直間隙建立一個新的卡片佈局。

類方法

序號方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

將指定的元件新增到此卡片佈局的內部名稱表中。

2

void addLayoutComponent(String name, Component comp)

如果佈局管理器使用每個元件的字串,則將元件 comp 新增到佈局中,並將其與 name 指定的字串相關聯。

3

void first(Container parent)

翻轉到容器的第一張卡片。

4

int getHgap()

獲取元件之間的水平間隙。

5

float getLayoutAlignmentX(Container parent)

返回沿 x 軸的對齊方式。

6

float getLayoutAlignmentY(Container parent)

返回沿 y 軸的對齊方式。

7

int getVgap()

獲取元件之間的垂直間隙。

8

void invalidateLayout(Container target)

使佈局無效,表示如果佈局管理器已快取資訊,則應將其丟棄。

9

void last(Container parent)

翻轉到容器的最後一張卡片。

10

void layoutContainer(Container parent)

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

11

Dimension maximumLayoutSize(Container target)

返回給定指定目標容器中元件的此佈局的最大尺寸。

12

Dimension minimumLayoutSize(Container parent)

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

13

void next(Container parent)

翻轉到指定容器的下一張卡片。

14

Dimension preferredLayoutSize(Container parent)

使用此卡片佈局確定容器引數的首選大小。

15

void previous(Container parent)

翻轉到指定容器的前一張卡片。

16

void removeLayoutComponent(Component comp)

從佈局中移除指定的元件。

17

void setHgap(int hgap)

設定元件之間的水平間隙。

18

void setVgap(int vgap)

設定元件之間的垂直間隙。

19

void show(Container parent, String name)

翻轉到使用 addLayoutComponent 新增到此佈局的具有指定名稱的元件。

20

String toString()

返回此卡片佈局狀態的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

CardLayout 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showCardLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

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

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

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

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

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

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

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

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

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

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

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

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT CardLayout

AWT FlowLayout 類

簡介

FlowLayout 以從左到右的流方式排列元件。

類宣告

以下是java.awt.FlowLayout 類的宣告

public class FlowLayout
   extends Object
      implements LayoutManager, Serializable

欄位

以下是java.awt.BorderLayout 類的欄位

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

  • static int LEADING -- 此值表示元件的每一行都應與容器方向的前緣對齊,例如,在從左到右的方向中對齊到左側。

  • static int LEFT -- 此值表示元件的每一行都應左對齊。

  • static int RIGHT -- 此值表示元件的每一行都應右對齊。

  • static int TRAILING -- 此值表示元件的每一行都應與容器方向的後緣對齊,例如,在從左到右的方向中對齊到右側。

類建構函式

序號建構函式和描述
1

FlowLayout()

構造一個新的 FlowLayout,其對齊方式為居中,預設水平和垂直間隙為 5 個單位。

2

FlowLayout(int align)

構造一個新的 FlowLayout,其對齊方式為指定值,預設水平和垂直間隙為 5 個單位。

3

FlowLayout(int align, int hgap, int vgap)

使用指示的對齊方式和指示的水平和垂直間隙建立一個新的流佈局管理器。

類方法

序號方法和描述
1

void addLayoutComponent(String name, Component comp)

將指定的元件新增到佈局中。

2

int getAlignment()

獲取此佈局的對齊方式。

3

int getHgap()

獲取元件之間的水平間隙。

4

int getVgap()

獲取元件之間的垂直間隙。

5

void layoutContainer(Container target)

佈局容器。

6

Dimension minimumLayoutSize(Container target)

返回佈局包含在指定目標容器中的可見元件所需的最小尺寸。

7

Dimension preferredLayoutSize(Container target)

返回給定指定目標容器中可見元件的此佈局的首選尺寸。

8

void removeLayoutComponent(Component comp)

從佈局中移除指定的元件。

9

void setAlignment(int align)

設定此佈局的對齊方式。

10

void setHgap(int hgap)

設定元件之間的水平間隙。

11

void setVgap(int vgap)

設定元件之間的垂直間隙。

12

String toString()

返回此 FlowLayout 物件及其值的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

FlowLayout 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showFlowLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

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

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

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT FlowLayout

AWT GridLayout 類

簡介

GridLayout 將元件排列在矩形網格中。

類宣告

以下是java.awt.GridLayout 類的宣告

public class GridLayout
   extends Object
      implements LayoutManager, Serializable

類建構函式

序號建構函式和描述
1

GridLayout()

建立一個網格佈局,預設情況下每個元件一列,一行。

2

GridLayout(int rows, int cols)

使用指定行數和列數建立一個網格佈局。

3

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

使用指定行數和列數建立一個網格佈局。

類方法

序號方法和描述
1

void addLayoutComponent(String name, Component comp)

使用指定的名稱將指定的元件新增到佈局中。

2

int getColumns()

獲取此佈局中的列數。

3

int getHgap()

獲取元件之間的水平間隙。

4

int getRows()

獲取此佈局中的行數。

5

int getVgap()

獲取元件之間的垂直間隙。

6

void layoutContainer(Container parent)

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

7

Dimension minimumLayoutSize(Container parent)

使用此網格佈局確定容器引數的最小大小。

8

Dimension preferredLayoutSize(Container parent)

使用此網格佈局確定容器引數的首選大小。

9

void removeLayoutComponent(Component comp)

從佈局中移除指定的元件。

10

void setColumns(int cols)

將此佈局中的列數設定為指定值。

11

void setHgap(int hgap)

將元件之間的水平間隙設定為指定值。

12

void setRows(int rows)

將此佈局中的行數設定為指定值。

13

void setVgap(int vgap)

將元件之間的垂直間隙設定為指定值。

14

String toString()

返回此網格佈局值的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

GridLayout 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showGridLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

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

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

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

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT GridLayout

AWT GridBagLayout 類

簡介

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

類宣告

以下是java.awt.GridBagLayout 類的宣告

public class GridBagLayout
   extends Object
      implements LayoutManager2, Serializable

欄位

以下是java.awt.BorderLayout 類的欄位

  • double[] columnWeights -- 此欄位儲存對列權重的覆蓋。

  • int[] columnWidths -- 此欄位儲存對列最小寬度的覆蓋。

  • protected Hashtable comptable -- 此雜湊表維護元件與其網格包約束之間的關聯。

  • protected GridBagConstraints defaultConstraints -- 此欄位儲存一個包含預設值的網格包約束例項,因此,如果元件沒有與其關聯的網格包約束,則該元件將被分配 defaultConstraints 的副本。

  • protected java.awt.GridBagLayoutInfo layoutInfo -- 此欄位儲存網格包的佈局資訊。

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

  • protected static int MINSIZE -- 網格包佈局可以佈局的最小網格。

  • protected static int PREFERREDSIZE -- 網格包佈局可以佈局的首選網格大小。

  • int[] rowHeights -- 此欄位儲存對行最小高度的覆蓋。

  • double[] rowWeights -- 此欄位儲存對行權重的覆蓋。

類建構函式

序號建構函式和描述
1

GridBagLayout()

建立一個網格包佈局管理器。

類方法

序號方法和描述
1

void addLayoutComponent(Component comp, Object constraints)

使用指定的約束物件將指定的元件新增到佈局中。

2

void addLayoutComponent(String name, Component comp)

使用指定的名稱將指定的元件新增到佈局中。

3

protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)

根據約束幾何形狀和填充,將 x、y、寬度和高度欄位調整為正確的值。

4

protected void AdjustForGravity(GridBagConstraints constraints, Rectangle r)

此方法已過時,僅為了向後相容而提供;新程式碼應呼叫 adjustForGravity。

5

protected void arrangeGrid(Container parent)

佈局網格。

6

protected void ArrangeGrid(Container parent)

此方法已過時,僅為了向後相容而提供;新程式碼應呼叫 arrangeGrid。

7

GridBagConstraints getConstraints(Component comp)

獲取指定元件的約束。

8

float getLayoutAlignmentX(Container parent)

返回沿 x 軸的對齊方式。

9

float getLayoutAlignmentY(Container parent)

返回沿 y 軸的對齊方式。

10

int[][] getLayoutDimensions()

確定佈局網格的列寬和行高。

11

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

為當前一組受管理的子項填充 GridBagLayoutInfo 的例項。

12

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

此方法已過時,僅為了向後相容而提供;新程式碼應呼叫 getLayoutInfo。

13

Point getLayoutOrigin()

確定佈局區域的原點,位於目標容器的圖形座標空間中。

14

double[][] getLayoutWeights()

確定佈局網格的列和行的權重。

15

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

根據 getLayoutInfo() 中的資訊計算主容器的最小尺寸。

16

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

此方法已過時,僅為了向後相容而提供;新程式碼應呼叫 getMinSize。

17

void invalidateLayout(Container target)

使佈局無效,表示如果佈局管理器已快取資訊,則應將其丟棄。

18

void layoutContainer(Container parent)

使用此網格包佈局佈局指定的容器。

19

Point location(int x, int y)

確定佈局網格中包含由 (x, y) 指定的點的哪個單元格。

20

protected GridBagConstraints lookupConstraints(Component comp)

檢索指定元件的約束。

21

Dimension maximumLayoutSize(Container target)

返回給定指定目標容器中元件的此佈局的最大尺寸。

22

Dimension minimumLayoutSize(Container parent)

使用此網格包佈局確定父容器的最小尺寸。

23

Dimension preferredLayoutSize(Container parent)

使用此網格包佈局確定父容器的首選尺寸。

24

void removeLayoutComponent(Component comp)

從此佈局中移除指定的元件。

25

void setConstraints(Component comp, GridBagConstraints constraints)

設定此佈局中指定元件的約束。

26

String toString()

返回此網格包佈局值的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

GridBagLayout 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtLayoutDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showGridBagLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

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

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

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

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

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

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

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

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

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT GridBagLayout

AWT 容器

容器是 AWT GUI 元件的組成部分。容器提供了一個元件可以放置的空間。AWT 中的容器本身就是一個元件,它增加了向自身新增元件的功能。以下是要考慮的要點。

  • Container 的子類稱為 Containter。例如 Panel、Frame 和 Window。

  • Container 只能向自身新增 Component。

  • 每個容器中都存在一個預設佈局,可以使用 setLayout 方法覆蓋它。

AWT Container 類

簡介

Container是 AWT 容器的超類。Container 物件可以包含其他 AWT 元件。

類宣告

以下是java.awt.Container類的宣告

public class Container
   extends Component

類建構函式

序號建構函式和描述
1

Container()

這將建立一個新的 Container。

類方法

序號方法和描述
1

Component add(Component comp)

將指定的元件附加到此容器的末尾。

2

Component add(Component comp, int index)

在給定位置將指定的元件新增到此容器。

3

void add(Component comp, Object constraints)

將指定的元件新增到此容器的末尾。

4

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

使用指定的約束在指定索引處將指定的元件新增到此容器。

5

Component add(String name, Component comp)

將指定的元件新增到此容器。

6

void addContainerListener(ContainerListener l)

新增指定的容器偵聽器以接收來自此容器的容器事件。

7

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

在指定的索引處將指定的元件新增到此容器。

8

void addNotify()

透過將其連線到本機螢幕資源使此 Container 可顯示。

9

void addPropertyChangeListener(PropertyChangeListener listener)

將 PropertyChangeListener 新增到監聽器列表。

10

void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

為特定屬性將 PropertyChangeListener 新增到監聽器列表。

11

void applyComponentOrientation(ComponentOrientation o)

設定此容器及其包含的所有元件的 ComponentOrientation 屬性。

12

boolean areFocusTraversalKeysSet(int id)

返回是否已為此 Container 顯式定義給定焦點遍歷操作的一組焦點遍歷鍵。

13

int countComponents()

已棄用。從 JDK 版本 1.1 開始,由 getComponentCount() 替換。

14

void deliverEvent(Event e)

已棄用。從 JDK 版本 1.1 開始,由 dispatchEvent(AWTEvent e) 替換

15

void doLayout()

導致此容器佈局其元件。

16

Component findComponentAt(int x, int y)

找到包含指定位置的可見子元件。

17

Component findComponentAt(Point p)

找到包含指定點的可見子元件。

18

float getAlignmentX()

返回沿 x 軸的對齊方式。

19

float getAlignmentY()

返回沿 y 軸的對齊方式。

20

Component getComponent(int n)

獲取此容器中的第 n 個元件。

21

Component getComponentAt(int x, int y)

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

22

Component getComponentAt(Point p)

獲取包含指定點的元件。

23

int getComponentCount()

獲取此面板中的元件數量。

24

Component[] getComponents()

獲取此容器中的所有元件。

25

int getComponentZOrder(Component comp)

返回元件在容器內的 z 順序索引。

26

ContainerListener[] getContainerListeners()

返回在此容器上註冊的所有容器偵聽器的陣列。

27

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

返回為此 Container 的給定遍歷操作的一組焦點遍歷鍵。

28

FocusTraversalPolicy getFocusTraversalPolicy()

返回將管理此 Container 的子項的鍵盤遍歷的焦點遍歷策略,如果此 Container 不是焦點迴圈根,則返回 null。

29

Insets getInsets()

確定此容器的內邊距,這些內邊距指示容器邊框的大小。

30

LayoutManager getLayout()

獲取此容器的佈局管理器。

31

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

返回當前在此 Container 上註冊為 FooListeners 的所有物件的陣列。

32

Dimension getMaximumSize()

返回此容器的最大尺寸。

33

Dimension getMinimumSize()

返回此容器的最小尺寸。

34

Point getMousePosition(boolean allowChildren)

如果 Container 在滑鼠指標下,則返回此 Container 的座標空間中滑鼠指標的位置,否則返回 null。

35

Dimension getPreferredSize()

返回此容器的首選尺寸。

36

Insets insets()

已棄用。從 JDK 版本 1.1 開始,由 getInsets() 替換。

37

void invalidate()

使容器無效。

38

boolean isAncestorOf(Component c)

檢查元件是否包含在此容器的元件層次結構中。

39

boolean isFocusCycleRoot()

返回此 Container 是否是焦點遍歷迴圈的根。

40

boolean isFocusCycleRoot(Container container)

返回指定的 Container 是否為此 Container 的焦點遍歷迴圈的焦點迴圈根。

41

boolean isFocusTraversalPolicyProvider()

返回此容器是否提供焦點遍歷策略。

42

boolean isFocusTraversalPolicySet()

返回是否已為此 Container 顯式設定焦點遍歷策略。

43

void layout()

已過時。從 JDK 1.1 版本開始,已被 doLayout() 方法取代。

44

void list(PrintStream out, int indent)

將此容器的列表列印到指定的輸出流。

45

void list(PrintWriter out, int indent)

從指定的縮排開始,將列表列印到指定的列印寫入器。

46

Component locate(int x, int y)

已棄用。從 JDK 版本 1.1 開始,由 getComponentAt(int, int) 替換。

47

Dimension minimumSize()

已棄用。從 JDK 版本 1.1 開始,由 getMinimumSize() 替換。

48

void paint(Graphics g)

繪製容器。

49

void paintComponents(Graphics g)

繪製此容器中的每個元件。

50

protected String paramString()

返回表示此 Container 狀態的字串。

51

Dimension preferredSize()

已棄用。從 JDK 版本 1.1 開始,由 getPreferredSize() 替換。

52

void print(Graphics g)

列印容器。

53

void printComponents(Graphics g)

列印此容器中的每個元件。

54

protected void processContainerEvent(ContainerEvent e)

透過將容器事件分派到任何註冊的 ContainerListener 物件來處理在此容器上發生的容器事件。

55

protected void processEvent(AWTEvent e)

處理此容器上的事件。

56

void remove(Component comp)

從此容器中移除指定的元件。

57

void remove(int index)

從此容器中移除由索引指定的元件。

58

void removeAll()

從此容器中移除所有元件。

59

void removeContainerListener(ContainerListener l)

移除指定的容器偵聽器,使其不再接收來自此容器的容器事件。

60

void removeNotify()

透過移除其與本機螢幕資源的連線使此 Container 無法顯示。

61

void setComponentZOrder(Component comp, int index)

將指定的元件移動到容器中指定的 z 順序索引。

62

void setFocusCycleRoot(boolean focusCycleRoot)

設定此 Container 是否是焦點遍歷迴圈的根。

63

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

為此 Container 的給定遍歷操作設定焦點遍歷鍵。

64

void setFocusTraversalPolicy(FocusTraversalPolicy policy)

如果此 Container 是焦點迴圈根,則設定將管理此 Container 的子項的鍵盤遍歷的焦點遍歷策略。

65

void setFocusTraversalPolicyProvider(boolean provider)

設定此容器是否將用於提供焦點遍歷策略。

66

void setFont(Font f)

設定此容器的字型。

67

void setLayout(LayoutManager mgr)

設定此容器的佈局管理器。

68

void transferFocusBackward()

將焦點轉移到上一個元件,就像此元件是焦點所有者一樣。

69

void transferFocusDownCycle()

將焦點向下轉移一個焦點遍歷迴圈。

70

void update(Graphics g)

更新容器。

71

void validate()

驗證此容器及其所有子元件。

72

protected void validateTree()

遞迴遍歷容器樹並重新計算標記為需要它的任何子樹的佈局(標記為無效的那些)。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Component

  • java.lang.Object

AWT Panel 類

簡介

Panel是最簡單的容器類。它提供了一個空間,應用程式可以在其中附加任何其他元件,包括其他面板。它使用 FlowLayout 作為預設佈局管理器。

類宣告

以下是java.awt.Panel類的宣告

public class Panel
   extends Container
      implements Accessible

類建構函式

序號建構函式和描述
1

Panel()

使用預設佈局管理器建立一個新的面板。

2

Panel(LayoutManager layout)

使用指定的佈局管理器建立一個新的面板。

類方法

序號方法和描述
1

void addNotify()

建立 Panel 的對等體。

2

AccessibleContext getAccessibleContext()

獲取與此 Panel 關聯的 AccessibleContext。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Panel 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtContainerDemo(){
      prepareGUI();
   }

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

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

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

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

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

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Panel

AWT Frame 類

簡介

Frame是一個帶邊框和標題的頂級視窗。它使用 BorderLayout 作為預設佈局管理器。

類宣告

以下是java.awt.Frame類的宣告

public class Frame
   extends Window
      implements MenuContainer

欄位

以下是java.awt.Frame類的欄位

  • static float BOTTOM_ALIGNMENT -- getAlignmentY 的易用性常量。

  • static int CROSSHAIR_CURSOR -- 已棄用。由 Cursor.CROSSHAIR_CURSOR 替換。

  • static int DEFAULT_CURSOR -- 已棄用。由 Cursor.DEFAULT_CURSOR 替換。

  • static int E_RESIZE_CURSOR -- 已棄用。由 Cursor.E_RESIZE_CURSOR 替換。

  • static int HAND_CURSOR -- 已棄用。由 Cursor.HAND_CURSOR 替換。

  • static int ICONIFIED -- 此狀態位指示框架已最小化。

  • static int MAXIMIZED_BOTH -- 此狀態位掩碼指示框架已完全最大化(即水平和垂直方向)。

  • static int MAXIMIZED_HORIZ -- 此狀態位指示框架在水平方向上最大化。

  • static int MAXIMIZED_VERT -- 此狀態位指示框架在垂直方向上最大化。

  • static int MOVE_CURSOR -- 已棄用。由 Cursor.MOVE_CURSOR 替換。

  • static int N_RESIZE_CURSOR -- 已棄用。由 Cursor.N_RESIZE_CURSOR 替換。

  • static int NE_RESIZE_CURSOR -- 已棄用。由 Cursor.NE_RESIZE_CURSOR 替換。

  • static int NORMAL -- 框架處於“正常”狀態。

  • static int NW_RESIZE_CURSOR -- 已棄用。由 Cursor.NW_RESIZE_CURSOR 替換。

  • static int S_RESIZE_CURSOR -- 已棄用。由 Cursor.S_RESIZE_CURSOR 替換。

  • static int SE_RESIZE_CURSOR -- 已棄用。由 Cursor.SE_RESIZE_CURSOR 替換。

  • static int SW_RESIZE_CURSOR -- 已棄用。由 Cursor.SW_RESIZE_CURSOR 替換。

  • static int TEXT_CURSOR -- 已棄用。由 Cursor.TEXT_CURSOR 替換。

  • static int W_RESIZE_CURSOR -- 已棄用。由 Cursor.W_RESIZE_CURSOR 替換。

  • static int WAIT_CURSOR -- 已棄用。由 Cursor.WAIT_CURSOR 替換。

類建構函式

序號建構函式和描述
1

Frame()

構造一個新的 Frame 例項,最初不可見。

2

Frame(GraphicsConfiguration gc)

使用指定的 GraphicsConfiguration 構造一個新的、最初不可見的 Frame。

3

Frame(String title)

使用指定的標題構造一個新的、最初不可見的 Frame 物件。

4

Frame(String title, GraphicsConfiguration gc)

使用指定的標題和 GraphicsConfiguration 構造一個新的、最初不可見的 Frame 物件。

類方法

序號方法和描述
1

void addNotify()

透過將其連線到本機螢幕資源,使此 Frame 可顯示。

2

AccessibleContext getAccessibleContext()

獲取與此 Frame 關聯的 AccessibleContext。

3

int getCursorType()

已棄用。從 JDK 版本 1.1 開始,由 Component.getCursor() 替換。

4

int getExtendedState()

獲取此框架的狀態。

5

static Frame[] getFrames()

返回此應用程式建立的所有 Frame 的陣列。

6

Image getIconImage()

返回要顯示為此框架圖示的影像。

7

Rectangle getMaximizedBounds()

獲取此框架的最大化邊界。

8

MenuBar getMenuBar()

獲取此框架的選單欄。

9

int getState()

獲取此框架的狀態(已過時)。

10

String getTitle()

獲取框架的標題。

11

boolean isResizable()

指示此框架是否可由使用者調整大小。

12

boolean isUndecorated()

指示此框架是否未裝飾。

13

protected String paramString()

返回表示此 Frame 狀態的字串。

14

void remove(MenuComponent m)

從此框架中刪除指定的選單欄。

15

void removeNotify()

透過刪除其與本機螢幕資源的連線,使此 Frame 無法顯示。

16

void setCursor(int cursorType)

已棄用。從 JDK 版本 1.1 開始,由 Component.setCursor(Cursor) 替換。

17

void setExtendedState(int state)

設定此框架的狀態。

18

void setIconImage(Image image)

設定要顯示為此視窗圖示的影像。

19

void setMaximizedBounds(Rectangle bounds)

設定此框架的最大化邊界。

20

void setMenuBar(MenuBar mb)

將此框架的選單欄設定為指定的選單欄。

21

void setResizable(boolean resizable)

設定此框架是否可由使用者調整大小。

22

void setState(int state)

設定此框架的狀態(已過時)。

23

void setTitle(String title)

將此框架的標題設定為指定的字串。

24

void setUndecorated(boolean undecorated)

停用或啟用此框架的裝飾。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Frame 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtContainerDemo(){
      prepareGUI();
   }

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

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

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

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   
   private void showFrameDemo(){
      headerLabel.setText("Container in action: Frame");   

      final Frame frame = new Frame();
      frame.setSize(300, 300);
      frame.setLayout(new FlowLayout());       
      frame.add(msglabel);
      frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            frame.dispose();
         }        
      });    
      Button okButton = new Button("Open a Frame");

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("A Frame shown to the user.");
            frame.setVisible(true);
         }
      });
      controlPanel.add(okButton);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Frame

AWT 視窗類

簡介

Window 類是一個沒有邊框和選單欄的頂級視窗。它使用 BorderLayout 作為預設佈局管理器。

類宣告

以下是 java.awt.Window 類的宣告

public class Window
   extends Container
      implements Accessible

類建構函式

序號建構函式和描述
1

Window(Frame owner)

使用指定的 Frame 作為其所有者構造一個新的、最初不可見的視窗。

2

Window(Window owner)

使用指定的 Window 作為其所有者構造一個新的、最初不可見的視窗。

3

Window(Window owner, GraphicsConfiguration gc)

使用指定的所有者 Window 和螢幕裝置的 GraphicsConfiguration 構造一個新的、最初不可見的視窗。

類方法

序號方法和描述
1

void addNotify()

透過建立與其本機螢幕資源的連線,使此 Window 可顯示。

2

void addPropertyChangeListener(PropertyChangeListener listener)

將 PropertyChangeListener 新增到監聽器列表。

3

void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)

為特定屬性將 PropertyChangeListener 新增到監聽器列表。

4

void addWindowFocusListener(WindowFocusListener l)

新增指定的視窗焦點偵聽器以接收來自此視窗的視窗事件。

5

void addWindowListener(WindowListener l)

新增指定的視窗偵聽器以接收來自此視窗的視窗事件。

6

void addWindowStateListener(WindowStateListener l)

新增指定的視窗狀態偵聽器以接收來自此視窗的視窗事件。

7

void applyResourceBundle(ResourceBundle rb)

已棄用。從 J2SE 1.4 開始,由 Component.applyComponentOrientation 替換。

8

void applyResourceBundle(String rbName)

已棄用。從 J2SE 1.4 開始,由 Component.applyComponentOrientation 替換。

9

void createBufferStrategy(int numBuffers)

為此元件上的多緩衝建立新的策略。

10

void createBufferStrategy(int numBuffers, BufferCapabilities caps)

為此元件上的多緩衝建立新的策略,並具有所需的緩衝功能。

11

void dispose()

釋放此 Window、其子元件及其所有擁有的子代使用的所有本機螢幕資源。

12

AccessibleContext getAccessibleContext()

獲取與此 Window 關聯的 AccessibleContext。

13

BufferStrategy getBufferStrategy()

返回此元件使用的 BufferStrategy。

14

boolean getFocusableWindowState()

返回此 Window 是否可以成為聚焦的 Window,如果它滿足 isFocusableWindow 中概述的其他要求。

15

Container getFocusCycleRootAncestor()

始終返回 null,因為 Window 沒有祖先;它們表示 Component 層次結構的頂部。

16

Component getFocusOwner()

如果此 Window 已聚焦,則返回具有焦點的此 Window 的子元件;否則返回 null。

17

Set<AWTKeyStroke> getFocusTraversalKeys(int id)

獲取此 Window 的焦點遍歷鍵。

18

GraphicsConfiguration getGraphicsConfiguration()

此方法返回此 Window 使用的 GraphicsConfiguration。

19

List<Image> getIconImages()

返回要顯示為此視窗圖示的影像序列。

20

InputContext getInputContext()

獲取此視窗的輸入上下文。

21

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

返回當前在此 Window 上註冊為 FooListeners 的所有物件的陣列。

22

Locale getLocale()

獲取與此視窗關聯的 Locale 物件,如果已設定區域設定。

23

Dialog.ModalExclusionType getModalExclusionType()

返回此視窗的模態排除型別。

24

Component getMostRecentFocusOwner()

返回此 Window 的子元件,當此 Window 獲得焦點時,該子元件將接收焦點。

25

Window[] getOwnedWindows()

返回一個數組,其中包含此視窗當前擁有的所有視窗。

26

Window getOwner()

返回此視窗的所有者。

27

static Window[] getOwnerlessWindows()

返回此應用程式建立的所有沒有所有者的 Window 的陣列。

28

Toolkit getToolkit()

返回此框架的工具包。

29

String getWarningString()

獲取與此視窗一起顯示的警告字串。

30

WindowFocusListener[] getWindowFocusListeners()

返回在此視窗上註冊的所有視窗焦點偵聽器的陣列。

31

WindowListener[] getWindowListeners()

返回在此視窗上註冊的所有視窗偵聽器的陣列。

32

static Window[] getWindows()

返回此應用程式建立的所有 Window(已擁有和未擁有)的陣列。

33

WindowStateListener[] getWindowStateListeners()

返回在此視窗上註冊的所有視窗狀態偵聽器的陣列。

34

void hide()

已過時。從 JDK 版本 1.5 開始,由 setVisible(boolean) 替換。

35

boolean isActive()

返回此 Window 是否處於活動狀態。

36

boolean isAlwaysOnTop()

返回此視窗是否始終位於其他視窗之上。

37

boolean isAlwaysOnTopSupported()

返回此視窗是否支援始終位於頂部的模式。

38

boolean isFocusableWindow()

返回此 Window 是否可以成為聚焦的 Window,即此 Window 或其任何子元件是否可以成為焦點所有者。

39

boolean isFocusCycleRoot()

始終返回 true,因為所有 Window 必須是焦點遍歷迴圈的根。

40

boolean isFocused()

返回此 Window 是否已聚焦。

41

boolean isLocationByPlatform()

如果此 Window 下次可見時將顯示在本機視窗系統的預設位置,則返回 true。

42

boolean isShowing()

檢查此 Window 是否顯示在螢幕上。

43

void pack()

使此 Window 的大小適合其子元件的首選大小和佈局。

44

void paint(Graphics g)

繪製容器。

45

boolean postEvent(Event e)

已棄用。從 JDK 版本 1.1 開始,由 dispatchEvent(AWTEvent) 替換。

46

protected void processEvent(AWTEvent e)

處理此視窗上的事件。

47

protected void processWindowEvent(WindowEvent e)

透過將事件分派到任何已註冊的 WindowListener 物件,處理在此視窗上發生的視窗事件。

48

protected void processWindowFocusEvent(WindowEvent e)

透過將事件分派到任何已註冊的 WindowFocusListener 物件,處理在此視窗上發生的視窗焦點事件。

49

protected void processWindowStateEvent(WindowEvent e)

透過將事件分派到任何已註冊的 WindowStateListener 物件,處理在此視窗上發生的視窗狀態事件。

50

void removeNotify()

透過移除其與本機螢幕資源的連線使此 Container 無法顯示。

51

void removeWindowFocusListener(WindowFocusListener l)

刪除指定的視窗焦點偵聽器,以便它不再接收來自此視窗的視窗事件。

52

void removeWindowListener(WindowListener l)

刪除指定的視窗偵聽器,以便它不再接收來自此視窗的視窗事件。

53

void removeWindowStateListener(WindowStateListener l)

刪除指定的視窗狀態偵聽器,以便它不再接收來自此視窗的視窗事件。

54

void reshape(int x, int y, int width, int height)

已棄用。從 JDK 版本 1.1 開始,由 setBounds(int, int, int, int) 替換。

55

void setAlwaysOnTop(boolean alwaysOnTop)

設定此視窗是否應始終位於其他視窗之上。

56

void setBounds(int x, int y, int width, int height)

移動並調整此元件的大小。

57

void setBounds(Rectangle r)

移動並調整此元件的大小,使其符合新的邊界矩形 r。

58

void setCursor(Cursor cursor)

將游標影像設定為指定的游標。

59

void setFocusableWindowState(boolean focusableWindowState)

設定此 Window 是否可以成為聚焦的 Window,如果它滿足 isFocusableWindow 中概述的其他要求。

60

void setFocusCycleRoot(boolean focusCycleRoot)

不執行任何操作,因為 Window 必須始終是焦點遍歷迴圈的根。

61

void setIconImage(Image image)

設定要顯示為此視窗圖示的影像。

62

void setIconImages(List<? extends Image> icons)

設定要顯示為此視窗圖示的影像序列。

63

void setLocationByPlatform(boolean locationByPlatform)

設定此 Window 應顯示在本機視窗系統的預設位置,還是在下次使 Window 可見時顯示在當前位置(由 getLocation 返回)。

64

void setLocationRelativeTo(Component c)

設定視窗相對於指定元件的位置。

65

void setMinimumSize(Dimension minimumSize)

將此視窗的最小大小設定為常量值。

66

void setModalExclusionType(Dialog.ModalExclusionType exclusionType)

指定此視窗的模態排除型別。

67

void setSize(Dimension d)

調整此元件的大小,使其寬度為 d.width,高度為 d.height。

68

void setSize(int width, int height)

調整此元件的大小,使其寬度為 width,高度為 height。

69

void setVisible(boolean b)

根據引數 b 的值顯示或隱藏此 Window。

70

void show()

已過時。從 JDK 版本 1.5 開始,由 setVisible(boolean) 替換。

71

void toBack()

如果此視窗可見,則將此視窗傳送到後面,如果它是焦點或活動視窗,則可能會導致它失去焦點或啟用。

72

void toFront()

如果此 Window 可見,則將此 Window 置於最前面,並可能使其成為聚焦的 Window。

繼承的方法

此類繼承自以下類的方法

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Window 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AwtContainerDemo.java
package com.tutorialspoint.gui;

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

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

   public AwtContainerDemo(){
      prepareGUI();
   }

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

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

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

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   
   private void showWindowDemo(){
      headerLabel.setText("Container in action: Window");   
      final MessageWindow window = 
         new MessageWindow(mainFrame,
         "Welcome to TutorialsPoint AWT Tutorial.");

      Button okButton = new Button("Open a Window");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            window.setVisible(true);
            statusLabel.setText("A Window shown to the user.");                
         }
      });
      controlPanel.add(okButton);
      mainFrame.setVisible(true);  
   }

   class MessageWindow extends Window{
      private String message; 

      public MessageWindow(Frame parent, String message) { 
         super(parent);               
         this.message = message; 
         setSize(300, 300);       
         setLocationRelativeTo(parent);
         setBackground(Color.gray);
      }

      public void paint(Graphics g) { 
         super.paint(g);
         g.drawRect(0,0,getSize().width - 1,getSize().height - 1); 
         g.drawString(message,50,150); 
      } 
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Window

AWT 選單類

眾所周知,每個頂級視窗都與一個選單欄關聯。此選單欄包含可供終端使用者使用的各種選單選項。此外,每個選項都包含選項列表,稱為下拉選單。Menu 和 MenuItem 控制元件是 MenuComponent 類的子類。

選單層次結構

AWT Menu Hiearchy

AWT MenuComponent 類

簡介

MenuComponent 是一個抽象類,它是所有與選單相關的元件的超類。

類宣告

以下是 **java.awt.MenuComponent** 類的宣告

public abstract class MenuComponent
   extends Object
      implements Serializable

類建構函式

序號建構函式和描述
1

MenuComponent()

建立一個 MenuComponent。

類方法

void dispatchEvent(AWTEvent e)
序號方法和描述
1

AccessibleContext getAccessibleContext()

獲取與此 MenuComponent 關聯的 AccessibleContext。

2

Font getFont()

獲取此選單元件使用的字型。

3

String getName()

獲取選單元件的名稱。

4

MenuContainer getParent()

返回此選單元件的父容器。

5

java.awt.peer.MenuComponentPeer getPeer()

已過時。從 JDK 版本 1.1 開始,程式不應直接操作對等體。

6

protected Object getTreeLock()

獲取此元件的鎖定物件(擁有執行緒同步監視器的物件),用於 AWT 元件樹和佈局操作。

7

protected String paramString()

返回表示此 MenuComponent 狀態的字串。

8

boolean postEvent(Event evt)

已過時。從 JDK 版本 1.1 開始,由 dispatchEvent 替換。

9

protected void processEvent(AWTEvent e)

處理在此選單元件上發生的事件。

10

void removeNotify()

刪除選單元件的對等體。

11

void setFont(Font f)

將此選單元件要使用的字型設定為指定的字型。

12

void setName(String name)

將元件的名稱設定為指定的字串。

13

String toString()

返回此選單元件的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

AWT MenuBar 類

簡介

MenuBar 類提供繫結到框架的選單欄,並且是特定於平臺的。

類宣告

以下是 **java.awt.MenuBar** 類的宣告

public class MenuBar
   extends MenuComponent
      implements MenuContainer, Accessible

類建構函式

序號建構函式和描述
1

MenuBar()

建立一個新的選單欄。

類方法

序號方法和描述
1

void dispatchEvent(AWTEvent e)

2

Menu add(Menu m)

將指定的選單新增到選單欄。

3

void addNotify()

建立選單欄的對等體。

4

int countMenus()

已過時。從 JDK 版本 1.1 開始,由 getMenuCount() 替換。

5

void deleteShortcut(MenuShortcut s)

刪除指定的選單快捷方式。

6

AccessibleContext getAccessibleContext()

獲取與此 MenuBar 關聯的 AccessibleContext。

7

Menu getHelpMenu()

獲取選單欄上的幫助選單。

8

Menu getMenu(int i)

獲取指定的選單。

9

int getMenuCount()

獲取選單欄上的選單數量。

10

MenuItem getShortcutMenuItem(MenuShortcut s)

獲取與指定的 MenuShortcut 物件關聯的 MenuItem 例項,如果此選單欄管理的選單項中沒有與指定的選單快捷方式關聯的,則返回 null。

11

void remove(int index)

從此選單欄中刪除位於指定索引處的選單。

12

void remove(MenuComponent m)

從此選單欄中刪除指定的選單元件。

13

void removeNotify()

刪除選單欄的對等體。

14

void setHelpMenu(Menu m)

將指定的選單設定為此選單欄的幫助選單。

15

Enumeration shortcuts()

獲取此選單欄管理的所有選單快捷方式的列舉。

繼承的方法

此類繼承自以下類的方法

  • java.awt.MenuComponent

  • java.lang.Object

MenuBar 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

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

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

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT MenuBar

AWT MenuItem 類

簡介

MenuBar 類表示選單中的實際項。選單中的所有項都應派生自 MenuItem 類或其子類之一。預設情況下,它包含一個簡單的帶標籤的選單項。

類宣告

以下是 **java.awt.MenuItem** 類的宣告

public class MenuItem
   extends MenuComponent
      implements Accessible

類建構函式

序號建構函式和描述
1

MenuItem()

構造一個新的 MenuItem,帶有空標籤和無鍵盤快捷鍵。

2

MenuItem(String label)

構造一個新的 MenuItem,帶有指定的標籤和無鍵盤快捷鍵。

3

MenuItem(String label, MenuShortcut s)

建立一個具有關聯鍵盤快捷鍵的選單項。

類方法

序號方法和描述
1

void addActionListener(ActionListener l)

新增指定的動作監聽器以接收來自此選單項的動作事件。

2

void addNotify()

建立選單項的對等體。

3

void deleteShortcut()

刪除與此選單項關聯的任何 MenuShortcut 物件。

4

void disable()

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

5

protected void disableEvents(long eventsToDisable)

停用對此選單項的事件傳遞,用於由指定的事件掩碼引數定義的事件。

6

void enable()

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

7

void enable(boolean b)

已過時。從 JDK 1.1 版本開始,已被 setEnabled(boolean) 方法取代。

8

protected void enableEvents(long eventsToEnable)

啟用對此選單項的事件傳遞,用於由指定的事件掩碼引數定義的事件。

9

AccessibleContext getAccessibleContext()

獲取與此 MenuItem 關聯的 AccessibleContext。

10

String getActionCommand()

獲取由此選單項觸發的動作事件的命令名稱。

11

ActionListener[] getActionListeners()

返回在此選單項上註冊的所有動作監聽器的陣列。

12

String getLabel()

獲取此選單項的標籤。

13

EventListener[] getListeners(Class listenerType)

返回當前在此 MenuItem 上註冊為 FooListeners 的所有物件的陣列。

14

MenuShortcut getShortcut()

獲取與此選單項關聯的 MenuShortcut 物件。

15

boolean isEnabled()

檢查此選單項是否已啟用。

16

String paramString()

返回表示此 MenuItem 狀態的字串。

17

protected void processActionEvent(ActionEvent e)

透過將它們分派到任何已註冊的 ActionListener 物件來處理在此選單項上發生的動作事件。

18

protected void processEvent(AWTEvent e)

處理此選單項上的事件。

19

void removeActionListener(ActionListener l)

刪除指定的動作監聽器,以便它不再接收來自此選單項的動作事件。

20

void setActionCommand(String command)

設定由此選單項觸發的動作事件的命令名稱。

21

void setEnabled(boolean b)

設定此選單項是否可以選擇。

22

void setLabel(String label)

將此選單項的標籤設定為指定的標籤。

23

void setShortcut(MenuShortcut s)

設定與此選單項關聯的 MenuShortcut 物件。

繼承的方法

此類繼承自以下類的方法

  • java.awt.MenuComponent

  • java.lang.Object

MenuItem 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

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

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

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出。(單擊“檔案”選單。選擇任何選單項。)

AWT MenuItem

AWT Menu 類

簡介

Menu 類表示從選單欄部署的下拉選單元件。

類宣告

以下是 **java.awt.Menu** 類的宣告

public class Menu
   extends MenuItem
      implements MenuContainer, Accessible

類建構函式

序號建構函式和描述
1

Menu()

構造一個新的選單,帶有空標籤。

2

Menu(String label)

構造一個新的選單,帶有指定的標籤。

3

Menu(String label, boolean tearOff)

構造一個新的選單,帶有指定的標籤,指示選單是否可以撕裂。

類方法

序號方法和描述
1

MenuItem add(MenuItem mi)

將指定的選單項新增到此選單。

2

void add(String label)

向此選單新增一個具有指定標籤的項。

3

void addNotify()

建立選單的對等體。

4

void addSeparator()

在當前位置向選單新增分隔線或連字元。

5

int countItems()

已棄用。從 JDK 版本 1.1 開始,由 getItemCount() 替換。

6

AccessibleContext getAccessibleContext()

獲取與此 Menu 關聯的 AccessibleContext。

7

MenuItem getItem(int index)

獲取此選單中指定索引處的項。

8

int getItemCount()

獲取此選單中的項數。

9

void insert(MenuItem menuitem, int index)

在指定位置將選單項插入此選單。

10

void insert(String label, int index)

在指定位置將具有指定標籤的選單項插入此選單。

11

void insertSeparator(int index)

在指定位置插入分隔符。

12

boolean isTearOff()

指示此選單是否為撕裂選單。

13

String paramString()

返回表示此 Menu 狀態的字串。

14

void remove(int index)

從此選單中刪除指定索引處的選單項。

15

void remove(MenuComponent item)

從此選單中刪除指定的選單項。

16

void removeAll()

從此選單中刪除所有項。

17

void removeNotify()

刪除選單的對等體。

繼承的方法

此類繼承自以下類的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

Menu 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

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

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

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出。(單擊“檔案”選單。)

AWT Menu

AWT CheckboxMenuItem 類

簡介

CheckboxMenuItem 類表示可以包含在選單中的複選框。選擇選單中的複選框會將控制元件的狀態從 **on** 更改為 **off** 或從 **off** 更改為 **on**。

類宣告

以下是 **java.awt.CheckboxMenuItem** 類的宣告

public class CheckboxMenuItem
   extends MenuItem
      implements ItemSelectable, Accessible

類建構函式

序號建構函式和描述
1

CheckboxMenuItem()

建立一個帶有空標籤的複選框選單項。

2

CheckboxMenuItem(String label)

建立一個帶有指定標籤的複選框選單項。

3

CheckboxMenuItem(String label, boolean state)

建立一個帶有指定標籤和狀態的複選框選單項。

類方法

序號方法和描述
1

void addItemListener(ItemListener l)

新增指定的專案監聽器以接收來自此複選框選單項的專案事件。

2

void addNotify()

建立複選框項的對等體。

3

AccessibleContext getAccessibleContext()

獲取與此 CheckboxMenuItem 關聯的 AccessibleContext。

4

ItemListener[] getItemListeners()

返回在此複選框選單項上註冊的所有專案監聽器的陣列。

5

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

返回當前在此 CheckboxMenuItem 上註冊為 FooListeners 的所有物件的陣列。

6

Object[] getSelectedObjects()

返回一個包含複選框選單項標籤的陣列(長度為 1),如果複選框未選中,則返回 null。

7

boolean getState()

確定此複選框選單項的狀態是“on”還是“off”。

8

String paramString()

返回表示此 CheckBoxMenuItem 狀態的字串。

9

protected void processEvent(AWTEvent e)

處理此複選框選單項上的事件。

10

protected void processItemEvent(ItemEvent e)

透過將它們分派到任何已註冊的 ItemListener 物件來處理在此複選框選單項上發生的專案事件。

11

void removeItemListener(ItemListener l)

刪除指定的專案監聽器,以便它不再接收來自此複選框選單項的專案事件。

12

void setState(boolean b)

將此複選框選單項設定為指定的狀態。

繼承的方法

此類繼承自以下類的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

CheckboxMenuItem 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

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

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

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出。(單擊“檔案”選單。取消選擇“顯示關於”選單項。)

AWT CheckboxMenuItem

AWT PopupMenu 類

簡介

彈出選單表示一個選單,可以在元件內的指定位置動態彈出。

類宣告

以下是 **java.awt.PopupMenu** 類的宣告

public class CheckboxMenuItem
   extends MenuItem
      implements ItemSelectable, Accessible

類建構函式

序號建構函式和描述
1

PopupMenu()

建立一個新的彈出選單,帶有空名稱。

2

PopupMenu(String label)

建立一個新的彈出選單,帶有指定的名稱。

類方法

序號方法和描述
1

void addNotify()

建立彈出選單的對等體。

2

AccessibleContext getAccessibleContext()

獲取與此 PopupMenu 關聯的 AccessibleContext。

3

MenuContainer getParent()

返回此選單元件的父容器。

4

void show(Component origin, int x, int y)

相對於源元件在 x、y 位置顯示彈出選單。

繼承的方法

此類繼承自以下類的方法

  • java.awt.MenuItem

  • java.awt.MenuComponent

  • java.lang.Object

PopupMenu 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTMenuDemo.java
package com.tutorialspoint.gui;

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

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

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showPopupMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

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

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

   private void showPopupMenuDemo(){
      final PopupMenu editMenu = new PopupMenu("Edit"); 

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");

      MenuItemListener menuItemListener = new MenuItemListener();

      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);   
      
      controlPanel.addMouseListener(new MouseAdapter() {
         public void mouseClicked(MouseEvent e) {            
               editMenu.show(controlPanel, e.getX(), e.getY());
         }               
      });
      controlPanel.add(editMenu); 

      mainFrame.setVisible(true);
   }
	
   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出。(單擊螢幕中間。)

AWT PopupMenu

AWT 圖形類

圖形控制元件允許應用程式在元件或影像上繪製。

AWT Graphics 類

簡介

Graphics 類是所有圖形上下文的抽象超類,它允許應用程式繪製到可以在各種裝置上實現的元件上,或者繪製到螢幕外影像上。

Graphics 物件封裝了 Java 支援的基本渲染操作所需的所有狀態資訊。狀態資訊包括以下屬性。

  • 要繪製的 Component 物件。

  • 用於渲染和裁剪座標的平移原點。

  • 當前剪輯。

  • 當前顏色。

  • 當前字型。

  • 當前邏輯畫素操作函式。

  • 當前 XOR 交替顏色

類宣告

以下是 **java.awt.Graphics** 類的宣告

public abstract class Graphics
   extends Object

類建構函式

序號建構函式和描述
1

Graphics() ()

構造一個新的 Graphics 物件。

類方法

序號方法和描述
1

abstract void clearRect(int x, int y, int width, int height)

透過使用當前繪圖面的背景色填充它來清除指定的矩形。

2

abstract void clipRect(int x, int y, int width, int height)

將當前剪輯與指定的矩形相交。

3

abstract void copyArea(int x, int y, int width, int height, int dx, int dy)

將元件的一個區域複製到由 dx 和 dy 指定的距離處。

4

abstract Graphics create()

建立一個新的 Graphics 物件,它是此 Graphics 物件的副本。

5

Graphics create(int x, int y, int width, int height)

基於此 Graphics 物件建立一個新的 Graphics 物件,但具有新的平移和剪下區域。

6

abstract void dispose()

釋放此圖形上下文並釋放其正在使用的任何系統資源。

7

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

繪製指定矩形的 3D 高亮輪廓。

8

abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

繪製覆蓋指定矩形的圓形或橢圓形弧的輪廓。

9

void drawBytes(byte[] data, int offset, int length, int x, int y)

使用此圖形上下文當前的字型和顏色繪製由指定位元組陣列給出的文字。

10

void drawChars(char[] data, int offset, int length, int x, int y)

使用此圖形上下文當前的字型和顏色繪製由指定字元陣列給出的文字。

11

abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)

繪製指定影像中當前可用的儘可能多的內容。

12

abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)

繪製指定影像中當前可用的儘可能多的內容。

13

abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)

繪製指定影像中已縮放以適合指定矩形內的儘可能多的內容。

14

abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)

繪製指定影像中已縮放以適合指定矩形內的儘可能多的內容。

15

abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)

繪製指定影像的指定區域中當前可用的儘可能多的內容,並將其動態縮放以適合目標可繪製表面的指定區域。

16

abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)

繪製指定影像的指定區域中當前可用的儘可能多的內容,並將其動態縮放以適合目標可繪製表面的指定區域。

17

abstract void drawLine(int x1, int y1, int x2, int y2)

使用當前顏色在此圖形上下文座標系中繪製從點 (x1, y1) 到點 (x2, y2) 的線。

18

abstract void drawOval(int x, int y, int width, int height)

繪製橢圓的輪廓。

19

abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)

繪製由 x 和 y 座標陣列定義的封閉多邊形。

20

void drawPolygon(Polygon p)

繪製由指定 Polygon 物件定義的多邊形的輪廓。

21

abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)

繪製由 x 和 y 座標陣列定義的一系列連線線。

22

void drawRect(int x, int y, int width, int height)

繪製指定矩形的輪廓。

23

abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

使用此圖形上下文當前的顏色繪製帶圓角的矩形輪廓。

24

abstract void drawString(AttributedCharacterIterator iterator, int x, int y)

呈現指定迭代器的文字,並根據 TextAttribute 類的規範應用其屬性。

25

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

使用此圖形上下文當前的字型和顏色繪製指定字串給出的文字。

26

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

使用當前顏色填充 3D 高亮矩形。

27

abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

填充覆蓋指定矩形的圓形或橢圓形弧。

28

abstract void fillOval(int x, int y, int width, int height)

使用當前顏色填充由指定矩形限定的橢圓。

29

abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)

填充由 x 和 y 座標陣列定義的封閉多邊形。

30

void fillPolygon(Polygon p)

使用圖形上下文當前的顏色填充由指定 Polygon 物件定義的多邊形。

31

abstract void fillRect(int x, int y, int width, int height)

填充指定的矩形。

32

abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

使用當前顏色填充指定的圓角矩形。

33

void finalize()

在不再引用此圖形上下文時釋放它。

34

abstract Shape getClip()

獲取當前剪下區域。

35

abstract Rectangle getClipBounds()

返回當前剪下區域的邊界矩形。

36

Rectangle getClipBounds(Rectangle r)

返回當前剪下區域的邊界矩形。

37

Rectangle getClipRect()

已棄用。從 JDK 版本 1.1 開始,由 getClipBounds() 替換。

38

abstract Color getColor()

獲取此圖形上下文的當前顏色。

39

abstract Font getFont()

獲取當前字型。

40

FontMetrics getFontMetrics()

獲取當前字型的字型度量。

41

abstract FontMetrics getFontMetrics(Font f)

獲取指定字型的字型度量。

42

boolean hitClip(int x, int y, int width, int height)

如果指定的矩形區域可能與當前剪下區域相交,則返回 true。

43

abstract void setClip(int x, int y, int width, int height)

將當前剪下設定為由給定座標指定的矩形。

44

abstract void setClip(Shape clip)

將當前剪下區域設定為任意剪下形狀。

45

abstract void setColor(Color c)

將此圖形上下文的當前顏色設定為指定顏色。

46

abstract void setFont(Font font)

將此圖形上下文的字型設定為指定的字型。

47

abstract void setPaintMode()

將此圖形上下文的繪製模式設定為用此圖形上下文的當前顏色覆蓋目標。

48

abstract void setXORMode(Color c1)

將此圖形上下文的繪製模式設定為在圖形上下文的當前顏色和新的指定顏色之間交替。

49

String toString()

返回一個表示此 Graphics 物件值的 String 物件。

50

abstract void translate(int x, int y)

將圖形上下文的原點平移到當前座標系中的點 (x, y)。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Graphics 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      g.setColor(Color.GRAY);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 150);      
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Graphics

AWT Graphics2D 類

簡介

Graphics2D 類擴充套件了 Graphics 類,以提供對幾何圖形、座標轉換、顏色管理和文字佈局的更精細的控制。

類宣告

以下是 **java.awt.Graphics2D** 類的宣告

public abstract class Graphics2D
   extends Graphics

類建構函式

序號建構函式和描述
1

Graphics2D()

構造一個新的 Graphics2D 物件。

類方法

序號方法和描述
1

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

設定任意數量的渲染演算法首選項的值。

2

abstract void clip(Shape s)

將當前剪下與指定 Shape 的內部相交,並將剪下設定為生成的交集。

3

abstract void draw(Shape s)

使用當前 Graphics2D 上下文的設定描繪 Shape 的輪廓。

4

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

繪製指定矩形的 3D 高亮輪廓。

5

abstract void drawGlyphVector(GlyphVector g, float x, float y)

使用 Graphics2D 上下文的渲染屬性呈現指定 GlyphVector 的文字。

6

abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)

呈現一個使用 BufferedImageOp 過濾的 BufferedImage。

7

abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)

呈現影像,在繪製之前應用從影像空間到使用者空間的轉換。

8

abstract void drawRenderableImage(RenderableImage img, AffineTransform xform)

呈現一個 RenderableImage,在繪製之前應用從影像空間到使用者空間的轉換。

9

abstract void drawRenderedImage(RenderedImage img, AffineTransform xform)

呈現一個 RenderedImage,在繪製之前應用從影像空間到使用者空間的轉換。

10

abstract void drawString(AttributedCharacterIterator iterator, float x, float y)

呈現指定迭代器的文字,並根據 TextAttribute 類的規範應用其屬性。

11

abstract void drawString(AttributedCharacterIterator iterator, int x, int y)

呈現指定迭代器的文字,並根據 TextAttribute 類的規範應用其屬性。

12

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

使用 Graphics2D 上下文中當前的文字屬性狀態呈現指定 String 指定的文字

13

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

使用 Graphics2D 上下文中當前的文字屬性狀態呈現指定 String 的文字。

14

abstract void fill(Shape s)

使用 Graphics2D 上下文的設定填充 Shape 的內部。

15

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

使用當前顏色填充 3D 高亮矩形。

16

abstract Color getBackground()

返回用於清除區域的背景顏色。

17

abstract Composite getComposite()

返回 Graphics2D 上下文中當前的 Composite。

18

abstract GraphicsConfiguration getDeviceConfiguration()

返回與此 Graphics2D 關聯的裝置配置。

19

abstract FontRenderContext getFontRenderContext()

獲取此 Graphics2D 上下文中 Font 的渲染上下文。

20

abstract Paint getPaint()

返回 Graphics2D 上下文的當前 Paint。

21

abstract Object getRenderingHint(RenderingHints.Key hintKey)

返回渲染演算法的單個首選項的值。

22

abstract RenderingHints getRenderingHints()

獲取渲染演算法的首選項。

23

abstract Stroke getStroke()

返回 Graphics2D 上下文中當前的 Stroke。

24

abstract AffineTransform getTransform()

返回 Graphics2D 上下文中當前 Transform 的副本。

25

abstract boolean hit(Rectangle rect, Shape s, boolean onStroke)

檢查指定的 Shape 是否與指定的 Rectangle(位於裝置空間中)相交。

26

abstract void rotate(double theta)

將當前 Graphics2D Transform 與旋轉轉換連線。

27

abstract void rotate(double theta, double x, double y)

將當前 Graphics2D Transform 與平移旋轉轉換連線。

28

abstract void scale(double sx, double sy)

將當前 Graphics2D Transform 與縮放轉換連線。隨後的渲染將根據相對於先前縮放的指定縮放因子進行調整大小。

29

abstract void setBackground(Color color)

設定 Graphics2D 上下文的背景顏色。

30

abstract void setComposite(Composite comp)

設定 Graphics2D 上下文的 Composite。

31

abstract void setPaint(Paint paint)

設定 Graphics2D 上下文的 Paint 屬性。

32

abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)

設定渲染演算法的單個首選項的值。

33

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

使用指定的提示替換所有渲染演算法的偏好值。

34

abstract void setStroke(Stroke s)

設定 Graphics2D 上下文的 Stroke。

35

abstract void setTransform(AffineTransform Tx)

覆蓋 Graphics2D 上下文中的 Transform。

36

abstract void shear(double shx, double shy)

將當前 Graphics2D Transform 與剪下變換連線。

37

abstract void transform(AffineTransform Tx)

根據“最後指定,首先應用”的規則,將 AffineTransform 物件與 Graphics2D 中的 Transform 組合。

38

abstract void translate(double tx, double ty)

將當前 Graphics2D Transform 與平移變換連線。

39

abstract void translate(int x, int y)

將 Graphics2D 上下文的原點平移到當前座標系中的 (x, y) 點。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Graphics2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
         RenderingHints.VALUE_ANTIALIAS_ON);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Graphics2D

AWT Arc2D 類

簡介

Arc2D 類是所有儲存由框架矩形、起始角、角度範圍(弧長)和閉合型別(OPEN、CHORD 或 PIE)定義的二維弧的物件的超類。

類宣告

以下是 **java.awt.Arc2D** 類的宣告

public abstract class Arc2D
   extends RectangularShape

欄位

以下是 **java.awt.geom.Arc2D** 類的欄位

  • **static int CHORD** -- 用於透過繪製從弧段開始到弧段結束的直線段來閉合弧的閉合型別。

  • **static int OPEN** -- 用於沒有連線弧段兩端的路徑段的開放弧的閉合型別。

  • **static int PIE** -- 用於透過繪製從弧段開始到完整橢圓中心的直線段,以及從該點到弧段結束的直線段來閉合弧的閉合型別。

類建構函式

序號建構函式和描述
1

protected Arc2D(int type)

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

boolean contains(double x, double y)

確定指定點是否在弧的邊界內。

2

boolean contains(double x, double y, double w, double h)

確定弧的內部是否完全包含指定的矩形。

3

boolean contains(Rectangle2D r)

確定弧的內部是否完全包含指定的矩形。

4

boolean containsAngle(double angle)

確定指定角度是否在弧的角度範圍內。

5

boolean equals(Object obj)

確定指定的 Object 是否等於此 Arc2D。

6

abstract double getAngleExtent()

返回弧的角度範圍。

7

abstract double getAngleStart()

返回弧的起始角。

8

int getArcType()

返回弧的弧閉合型別:OPEN、CHORD 或 PIE。

9

Rectangle2D getBounds2D()

返回弧的高精度框架矩形。

10

Point2D getEndPoint()

返回弧的結束點。

11

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義弧的邊界。

12

Point2D getStartPoint()

返回弧的起始點。

13

int hashCode()

返回此 Arc2D 的雜湊碼。

14

boolean intersects(double x, double y, double w, double h)

確定弧的內部是否與指定矩形的內部相交。

15

protected abstract Rectangle2D makeBounds(double x, double y, double w, double h)

構造一個適當精度的 Rectangle2D,以容納計算為該弧的框架矩形的引數。

16

abstract void setAngleExtent(double angExt)

將此弧的角度範圍設定為指定雙精度值。

17

void setAngles(double x1, double y1, double x2, double y2)

使用兩組座標設定此弧的起始角和角度範圍。

18

void setAngles(Point2D p1, Point2D p2)

使用兩個點設定此弧的起始角和角度範圍。

19

abstract void setAngleStart(double angSt)

將此弧的起始角設定為指定雙精度值。

20

void setAngleStart(Point2D p)

將此弧的起始角設定為指定點相對於此弧中心的定義角度。

21

void setArc(Arc2D a)

將此弧設定為與指定的弧相同。

22

abstract void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure)

將此弧的位置、大小、角度範圍和閉合型別設定為指定的雙精度值。

23

void setArc(Point2D loc, Dimension2D size, double angSt, double angExt, int closure)

將此弧的位置、大小、角度範圍和閉合型別設定為指定的值。

24

void setArc(Rectangle2D rect, double angSt, double angExt, int closure)

將此弧的位置、大小、角度範圍和閉合型別設定為指定的值。

25

void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure)

將此弧的位置、邊界、角度範圍和閉合型別設定為指定的值。

26

void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius)

將此弧的位置、邊界和角度範圍設定為指定的值。

27

void setArcType(int type)

將此弧的閉合型別設定為指定的值:OPEN、CHORD 或 PIE。

28

void setFrame(double x, double y, double w, double h)

將此 Shape 的框架矩形的位置和大小設定為指定的矩形值。

繼承的方法

此類繼承自以下類的方法

  • java.awt.geom.RectangularShape

  • java.lang.Object

Arc2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Arc2D.Float arc = new Arc2D.Float(Arc2D.PIE);
      arc.setFrame(70, 200, 150, 150);
      arc.setAngleStart(0);
      arc.setAngleExtent(145);
      Graphics2D g2 = (Graphics2D) g; 
      g2.setColor(Color.gray);
      g2.draw(arc);
      g2.setColor(Color.red);
      g2.fill(arc);
      g2.setColor(Color.black);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Arc2D.PIE", 100, 120); 
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Arc2D

AWT CubicCurve2D 類

簡介

CubicCurve2D 類在 (x,y) 座標空間中指定了一個三次引數曲線段。

類宣告

以下是 **java.awt.geom.CubicCurve2D** 類的宣告

public abstract class CubicCurve2D
   extends Object
      implements Shape, Cloneable

類建構函式

序號建構函式和描述
1

protected CubicCurve2D()

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

Object clone()

建立一個與該物件相同類的新的物件。

2

boolean contains(double x, double y)

測試指定的座標是否在 Shape 的邊界內。

3

boolean contains(double x, double y, double w, double h)

測試 Shape 的內部是否完全包含指定的矩形區域。

4

boolean contains(Point2D p)

測試指定的 Point2D 是否在 Shape 的邊界內。

5

boolean contains(Rectangle2D r)

測試 Shape 的內部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一個完全包含 Shape 的整數 Rectangle。

7

abstract Point2D getCtrlP1()

返回第一個控制點。

8

abstract Point2D getCtrlP2()

返回第二個控制點。

9

abstract double getCtrlX1()

以雙精度返回第一個控制點的 X 座標。

10

abstract double getCtrlX2()

以雙精度返回第二個控制點的 X 座標。

11

abstract double getCtrlY1()

以雙精度返回第一個控制點的 Y 座標。

12

abstract double getCtrlY2()

以雙精度返回第二個控制點的 Y 座標。

13

double getFlatness()

返回此曲線的平坦度。

14

static double getFlatness(double[] coords, int offset)

返回由指定索引處的指定陣列中儲存的控制點指定的立方曲線的平坦度。

15

static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

返回由指定的控制點指定的立方曲線的平坦度。

16

double getFlatnessSq()

返回此曲線的平坦度的平方。

17

static double getFlatnessSq(double[] coords, int offset)

返回由指定索引處的指定陣列中儲存的控制點指定的立方曲線的平坦度的平方。

18

static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

返回由指定的控制點指定的立方曲線的平坦度的平方。

19

abstract Point2D getP1()

返回起始點。

20

abstract Point2D getP2()

返回結束點。

21

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義形狀的邊界。

22

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一個迭代物件,該物件定義扁平化形狀的邊界。

23

abstract double getX1()

以雙精度返回起始點的 X 座標。

24

abstract double getX2()

以雙精度返回結束點的 X 座標。

25

abstract double getY1()

以雙精度返回起始點的 Y 座標。

26

abstract double getY2()

以雙精度返回結束點的 Y 座標。

27

boolean intersects(double x, double y, double w, double h)

測試 Shape 的內部是否與指定矩形區域的內部相交。

28

boolean intersects(Rectangle2D r)

測試 Shape 的內部是否與指定的 Rectangle2D 的內部相交。

29

void setCurve(CubicCurve2D c)

將此曲線的端點和控制點的位置設定為與指定的 CubicCurve2D 中的相同。

30

void setCurve(double[] coords, int offset)

將此曲線的端點和控制點的位置設定為指定陣列中指定偏移量處的雙精度座標。

31

abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)

將此曲線的端點和控制點的位置設定為指定的雙精度座標。

32

void setCurve(Point2D[] pts, int offset)

將此曲線的端點和控制點的位置設定為指定陣列中指定偏移量處的 Point2D 物件的座標。

33

void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)

將此曲線的端點和控制點的位置設定為指定的 Point2D 座標。

34

static int solveCubic(double[] eqn)

求解係數在 eqn 陣列中的三次方程,並將非複數根放回同一陣列中,返回根的數量。

35

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

求解係數在 eqn 陣列中的三次方程,並將非複數根放入 res 陣列中,返回根的數量。

36

void subdivide(CubicCurve2D left, CubicCurve2D right)

細分此立方曲線並將生成的兩個細分曲線儲存到 left 和 right 曲線引數中。

37

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

細分由 src 引數指定的立方曲線並將生成的兩個細分曲線儲存到 left 和 right 曲線引數中。

38

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

將儲存在 src 陣列中從 srcoff 到 (srcoff + 7) 索引處的座標指定的立方曲線細分,並將生成的兩個細分曲線儲存到兩個結果陣列中的對應索引處。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

CubicCurve2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      CubicCurve2D shape = new CubicCurve2D.Float();
      shape.setCurve(250F,250F,20F,90F,140F,100F,350F,330F);       
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("CubicCurve2D.Curve", 100, 120);
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT CubicCurve2D

AWT Ellipse2D 類

簡介

Ellipse2D 類表示由一個外接矩形定義的橢圓。

類宣告

以下是 java.awt.geom.Ellipse2D 類的宣告

public abstract class Ellipse2D
   extends RectangularShape

類建構函式

序號建構函式和描述
1

protected Ellipse2D()

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

boolean contains(double x, double y)

測試指定的座標是否在 Shape 的邊界內。

2

boolean contains(double x, double y, double w, double h)

測試 Shape 的內部是否完全包含指定的矩形區域。

3

boolean equals(Object obj)

確定指定的 Object 是否等於此 Ellipse2D。

4

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義此 Ellipse2D 的邊界。

5

int hashCode()

返回此 Ellipse2D 的雜湊碼。

6

boolean intersects(double x, double y, double w, double h)

測試 Shape 的內部是否與指定矩形區域的內部相交。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Ellipse2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Ellipse2D shape = new Ellipse2D.Float();
      shape.setFrame(100, 150, 200,100);
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Ellipse2D.Oval", 100, 120); 
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Ellipse2D

AWT Rectangle2D 類

簡介

Rectangle2D 類表示由位置 (x,y) 和尺寸 (w x h) 定義的矩形。

類宣告

以下是 java.awt.geom.Rectangle2D 類的宣告

public abstract class Rectangle2D
   extends RectangularShape

欄位

以下是 **java.awt.geom.Arc2D** 類的欄位

  • static int OUT_BOTTOM -- 指示點位於此 Rectangle2D 下方的位掩碼。

  • static int OUT_LEFT -- 指示點位於此 Rectangle2D 左側的位掩碼。

  • static int OUT_RIGHT -- 指示點位於此 Rectangle2D 右側的位掩碼。

  • static int OUT_TOP -- 指示點位於此 Rectangle2D 上方的位掩碼。

類建構函式

序號建構函式和描述
1

protected Rectangle2D()

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

void add(double newx, double newy)

將由雙精度引數 newx 和 newy 指定的點新增到此 Rectangle2D。

2

void add(Point2D pt)

將 Point2D 物件 pt 新增到此 Rectangle2D。

3

void add(Rectangle2D r)

將 Rectangle2D 物件新增到此 Rectangle2D。

4

boolean contains(double x, double y)

測試指定的座標是否在 Shape 的邊界內。

5

boolean contains(double x, double y, double w, double h)

測試 Shape 的內部是否完全包含指定的矩形區域。

6

abstract Rectangle2D createIntersection(Rectangle2D r)

返回一個新的 Rectangle2D 物件,該物件表示此 Rectangle2D 與指定的 Rectangle2D 的交集。

7

abstract Rectangle2D createUnion(Rectangle2D r)

返回一個新的 Rectangle2D 物件,該物件表示此 Rectangle2D 與指定的 Rectangle2D 的並集。

8

boolean equals(Object obj)

確定指定的 Object 是否等於此 Rectangle2D。

9

Rectangle2D getBounds2D()

返回 Shape 的高精度且更準確的邊界框,而不是 getBounds 方法。

10

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義此 Rectangle2D 的邊界。

11

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一個迭代物件,該物件定義扁平化 Rectangle2D 的邊界。

12

int hashCode()

返回此 Rectangle2D 的雜湊碼。

13

static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)

將指定的兩個源 Rectangle2D 物件相交,並將結果放入指定的目標 Rectangle2D 物件中。

14

boolean intersects(double x, double y, double w, double h)

測試 Shape 的內部是否與指定矩形區域的內部相交。

15

boolean intersectsLine(double x1, double y1, double x2, double y2)

測試指定的線段是否與此 Rectangle2D 的內部相交。

16

boolean intersectsLine(Line2D l)

測試指定的線段是否與此 Rectangle2D 的內部相交。

17

abstract int outcode(double x, double y)

確定指定的座標相對於此 Rectangle2D 的位置。

18

int outcode(Point2D p)

確定指定的 Point2D 相對於此 Rectangle2D 的位置。

19

void setFrame(double x, double y, double w, double h)

將此 Rectangle2D 的外部邊界的定位和大小設定為指定的矩形值。

20

abstract void setRect(double x, double y, double w, double h)

將此 Rectangle2D 的位置和大小設定為指定的雙精度值。

21

void setRect(Rectangle2D r)

將此 Rectangle2D 設定為與指定的 Rectangle2D 相同。

22

static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)

將兩個源 Rectangle2D 物件合併,並將結果放入指定的目標 Rectangle2D 物件中。

繼承的方法

此類繼承自以下類的方法

  • java.awt.geom.RectangularShape

  • java.lang.Object

Ellipse2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Rectangle2D shape = new Rectangle2D.Float();
      shape.setFrame(100, 150, 200,100);
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Rectangle2D.Rectangle", 100, 120);
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Rectangle2D

AWT QuadCurve2D 類

簡介

QuadCurve2D 類表示 (x,y) 座標空間中的二次引數曲線段。

類宣告

以下是 java.awt.geom.QuadCurve2D 類的宣告

public abstract class QuadCurve2D
   extends Object
      implements Shape, Cloneable

類建構函式

序號建構函式和描述
1

protected QuadCurve2D() ()

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

Object clone()

建立一個與該物件具有相同類和相同內容的新物件。

2

boolean contains(double x, double y)

測試指定的座標是否在 Shape 的邊界內。

3

boolean contains(double x, double y, double w, double h)

測試 Shape 的內部是否完全包含指定的矩形區域。

4

boolean contains(Point2D p)

測試指定的 Point2D 是否在 Shape 的邊界內。

5

boolean contains(Rectangle2D r)

測試 Shape 的內部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一個完全包含 Shape 的整數 Rectangle。

7

abstract Point2D getCtrlPt()

返回控制點。

8

abstract double getCtrlX()

以雙精度返回控制點的 X 座標。

9

abstract double getCtrlY()

以雙精度返回控制點的 Y 座標。

10

doublegetFlatness()

返回此 QuadCurve2D 的平坦度,或控制點到連線端點的線的最大距離。

11

static double getFlatness(double[] coords, int offset)

返回在指定陣列的指定索引處儲存的控制點指定的二次曲線的平坦度,或控制點到連線端點的線的最大距離。

12

static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

返回由指定的控制點指定的二次曲線的平坦度,或控制點到連線端點的線的最大距離。

13

double getFlatnessSq()

返回此 QuadCurve2D 的平坦度的平方,或控制點到連線端點的線的最大距離。

14

static double getFlatnessSq(double[] coords, int offset)

返回在指定陣列的指定索引處儲存的控制點指定的二次曲線的平坦度的平方,或控制點到連線端點的線的最大距離。

15

static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

返回由指定的控制點指定的二次曲線的平坦度的平方,或控制點到連線端點的線的最大距離。

16

abstract Point2D getP1()

返回起始點。

17

abstract Point2D getP2()

返回結束點。

18

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義此 QuadCurve2D 的形狀的邊界。

19

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一個迭代物件,該物件定義此 QuadCurve2D 的扁平化形狀的邊界。

20

abstract double getX1()

以雙精度返回起點的 X 座標。

21

abstract double getX2()

以雙精度返回結束點的 X 座標。

22

abstract double getY1()

以雙精度返回起始點的 Y 座標。

23

abstract double getY2()

以雙精度返回結束點的 Y 座標。

24

boolean intersects(double x, double y, double w, double h)

測試 Shape 的內部是否與指定矩形區域的內部相交。

25

boolean intersects(Rectangle2D r)

測試 Shape 的內部是否與指定的 Rectangle2D 的內部相交。

26

void setCurve(double[] coords, int offset)

將此 QuadCurve2D 的端點和控制點的位置設定為指定陣列中指定偏移處的雙精度座標。

27

abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

將此曲線的端點和控制點的位置設定為指定的雙精度座標。

28

void setCurve(Point2D[] pts, int offset)

將此 QuadCurve2D 的端點和控制點的位置設定為指定陣列中指定偏移處的 Point2D 物件的座標。

29

void setCurve(Point2D p1, Point2D cp, Point2D p2)

將此 QuadCurve2D 的端點和控制點的位置設定為指定的 Point2D 座標。

30

void setCurve(QuadCurve2D c)

將此 QuadCurve2D 的端點和控制點的位置設定為與指定的 QuadCurve2D 中的那些相同。

31

static int solveQuadratic(double[] eqn)

求解係數在 eqn 陣列中的二次方程,並將非複數根放回同一陣列中,返回根的數量。

32

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

求解係數在 eqn 陣列中的二次方程,並將非複數根放入 res 陣列中,返回根的數量。

33

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

將儲存在 src 陣列中從 srcoff 到 srcoff + 5 索引處的座標指定的二次曲線細分,並將生成的兩個細分曲線儲存到兩個結果陣列中的對應索引處。

34

void subdivide(QuadCurve2D left, QuadCurve2D right)

細分此 QuadCurve2D,並將生成的兩個細分曲線儲存到 left 和 right 曲線引數中。

35

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

細分由 src 引數指定的二次曲線,並將生成的兩個細分曲線儲存到 left 和 right 曲線引數中。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

QuadCurve2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      QuadCurve2D shape = new QuadCurve2D.Double();
      shape.setCurve(250D,250D,100D,100D,200D,150D);  
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("QuadCurve2D.Curve", 100, 120);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT QuadCurve2D

AWT Line2D 類

簡介

Line2D 類表示 (x,y) 座標空間中的線段。

類宣告

以下是 java.awt.geom.Line2D 類的宣告

public abstract class Line2D
   extends Object
      implements Shape, Cloneable

類建構函式

序號建構函式和描述
1

protected Line2D() ()

這是一個抽象類,不能直接例項化。

類方法

序號方法和描述
1

Object clone()

建立一個與該物件相同類的新的物件。

2

boolean contains(double x, double y)

測試指定的座標是否在此 Line2D 的邊界內。

3

boolean contains(double x, double y, double w, double h)

測試此 Line2D 的內部是否完全包含指定的矩形座標集。

4

boolean contains(Point2D p)

測試給定的 Point2D 是否在此 Line2D 的邊界內。

5

boolean contains(Rectangle2D r)

測試此 Line2D 的內部是否完全包含指定的 Rectangle2D。

6

Rectangle getBounds()

返回一個完全包含 Shape 的整數 Rectangle。

7

abstract Point2D getP1()

返回此 Line2D 的起點 Point2D。

8

abstract Point2D getP2()

返回此 Line2D 的終點 Point2D。

9

PathIterator getPathIterator(AffineTransform at)

返回一個迭代物件,該物件定義此 Line2D 的邊界。

10

PathIterator getPathIterator(AffineTransform at, double flatness)

返回一個迭代物件,該物件定義此扁平化 Line2D 的邊界。

11

abstract double getX1()

以雙精度返回起始點的 X 座標。

12

abstract double getX2()

以雙精度返回結束點的 X 座標。

13

abstract double getY1()

以雙精度返回起始點的 Y 座標。

14

abstract double getY2()

以雙精度返回結束點的 Y 座標。

15

boolean intersects(double x, double y, double w, double h)

測試 Shape 的內部是否與指定矩形區域的內部相交。

16

boolean intersects(Rectangle2D r)

測試 Shape 的內部是否與指定的 Rectangle2D 的內部相交。

17

boolean intersectsLine(double x1, double y1, double x2, double y2)

測試從 (x1,y1) 到 (x2,y2) 的線段是否與該線段相交。

18

boolean intersectsLine(Line2D l)

測試指定的線段是否與該線段相交。

19

static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)

測試從 (x1,y1) 到 (x2,y2) 的線段是否與從 (x3,y3) 到 (x4,y4) 的線段相交。

20

double ptLineDist(double px, double py)

返回點到該線的距離。

21

static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)

返回點到線的距離。

22

double ptLineDist(Point2D pt)

返回 Point2D 到該線的距離。

23

double ptLineDistSq(double px, double py)

返回點到該線的距離的平方。

24

static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)

返回點到線的距離的平方。

25

double ptLineDistSq(Point2D pt)

返回指定的 Point2D 到該線的距離的平方。

26

double ptSegDist(double px, double py)

返回點到該線段的距離。

27

static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)

返回點到線段的距離。

28

double ptSegDist(Point2D pt)

返回 Point2D 到該線段的距離。

29

double ptSegDistSq(double px, double py)

返回點到該線段的距離的平方。

30

static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)

返回點到線段的距離的平方。

31

double ptSegDistSq(Point2D pt)

返回 Point2D 到該線段的距離的平方。

32

int relativeCCW(double px, double py)

返回指定點 (px,py) 相對於該線段的位置指示符。

33

static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py)

返回指定點 (px,py) 相對於從 (x1,y1) 到 (x2,y2) 的線段的位置指示符。

34

int relativeCCW(Point2D p)

返回指定的 Point2D 相對於該線段的位置指示符。

35

abstract void setLine(double x1, double y1, double x2, double y2)

將此 Line2D 的端點的位置設定為指定的雙精度座標。

36

void setLine(Line2D l)

將此 Line2D 的端點的位置設定為與指定的 Line2D 的那些端點相同。

37

void setLine(Point2D p1, Point2D p2)

將此 Line2D 的端點的位置設定為指定的 Point2D 座標。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Line2D 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Line2D shape = new Line2D.Double();
      shape.setLine(250D,250D,150D,150D);  
      Graphics2D g2 = (Graphics2D) g; 
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to TutorialsPoint", 50, 70);
      g2.drawString("Line2D.Line", 100, 120);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Line2D

AWT Font 類

簡介

Font 類表示字型,字型用於以可見方式呈現文字。

類宣告

以下是 java.awt.Font 類的宣告

public class Font
   extends Object
      implements Serializable

欄位

以下是 **java.awt.geom.Arc2D** 類的欄位

  • static int BOLD -- 粗體樣式常量。

  • static int CENTER_BASELINE -- 在佈局文字時,在漢語、日語和韓語等表意文字中使用的基線。

  • static String DIALOG -- 邏輯字型“Dialog”的規範系列名稱的字串常量。

  • static String DIALOG_INPUT -- “DialogInput” 邏輯字型的規範族名稱的字串常量。

  • static int HANGING_BASELINE -- 在排版文字時,天城體和類似文字使用的基線。

  • static int ITALIC -- 斜體樣式常量。

  • static int LAYOUT_LEFT_TO_RIGHT -- 傳遞給 layoutGlyphVector 的一個標誌,指示文字根據雙向分析結果是從左到右的。

  • static int LAYOUT_NO_LIMIT_CONTEXT -- 傳遞給 layoutGlyphVector 的一個標誌,指示不應檢查字元陣列中指定限制之後的文字。

  • static int LAYOUT_NO_START_CONTEXT -- 傳遞給 layoutGlyphVector 的一個標誌,指示不應檢查字元陣列中指定起始位置之前的文字。

  • static int LAYOUT_RIGHT_TO_LEFT -- 傳遞給 layoutGlyphVector 的一個標誌,指示文字根據雙向分析結果是從右到左的。

  • static String MONOSPACED -- “Monospaced” 邏輯字型的規範族名稱的字串常量。

  • protected String name -- 此 Font 的邏輯名稱,傳遞給建構函式。

  • static int PLAIN -- 普通樣式常量。

  • protected float pointSize -- 此 Font 的點大小(浮點數)。

  • static int ROMAN_BASELINE -- 大多數羅馬文字在排版文字時使用的基線。

  • static String SANS_SERIF -- “SansSerif” 邏輯字型的規範族名稱的字串常量。

  • static String SERIF -- “Serif” 邏輯字型的規範族名稱的字串常量。

  • protected int size -- 此 Font 的點大小(四捨五入為整數)。

  • protected int style -- 此 Font 的樣式,傳遞給建構函式。

  • static int TRUETYPE_FONT -- 識別型別為 TRUETYPE 的字型資源。

  • static int TYPE1_FONT -- 識別型別為 TYPE1 的字型資源。

類建構函式

序號建構函式和描述
1

protected Font() ()

根據指定的字型建立一個新的 Font。

2

Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

根據指定的字型建立一個新的 Font。

3

Font(String name, int style, int size)

根據指定的字型建立一個新的 Font。

類方法

序號方法和描述
1

boolean canDisplay(char c)

檢查此 Font 是否具有指定字元的字形。

2

boolean canDisplay(int codePoint)

檢查此 Font 是否具有指定字元的字形。

3

int canDisplayUpTo(char[] text, int start, int limit)

指示此 Font 是否可以顯示從 start 開始到 limit 結束的指定文字中的字元。

4

int canDisplayUpTo(CharacterIterator iter, int start, int limit)

指示此 Font 是否可以顯示從 start 開始到 limit 結束的 iter 指定的文字。

5

int canDisplayUpTo(String str)

指示此 Font 是否可以顯示指定的字串。

6

static Font createFont(int fontFormat, File fontFile)

使用指定的字型型別和指定的字型檔案返回一個新的 Font。

7

static Font createFont(int fontFormat, InputStream fontStream)

使用指定的字型型別和輸入資料返回一個新的 Font。

8

GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)

透過基於此 Font 中的 Unicode cmap 將字元一對一對映到字形來建立 GlyphVector。

9

GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)

透過基於此 Font 中的 Unicode cmap 將指定的字元一對一對映到字形來建立 GlyphVector。

10

GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)

透過基於此 Font 中的 Unicode cmap 將字元一對一對映到字形來建立 GlyphVector。

11

GlyphVector createGlyphVector(FontRenderContext frc, String str)

透過基於此 Font 中的 Unicode cmap 將字元一對一對映到字形來建立 GlyphVector。

12

static Font decode(String str)

返回 str 引數描述的 Font。

13

Font deriveFont(AffineTransform trans)

透過複製當前 Font 物件並對其應用新的變換來建立一個新的 Font 物件。

14

Font deriveFont(float size)

透過複製當前 Font 物件並對其應用新的大小來建立一個新的 Font 物件。

15

Font deriveFont(int style)

透過複製當前 Font 物件並對其應用新的樣式來建立一個新的 Font 物件。

16

Font deriveFont(int style, AffineTransform trans)

透過複製此 Font 物件並應用新的樣式和變換來建立一個新的 Font 物件。

17

Font deriveFont(int style, float size)

透過複製此 Font 物件並應用新的樣式和大小來建立一個新的 Font 物件。

18

Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

透過複製當前 Font 物件並對其應用一組新的字型屬性來建立一個新的 Font 物件。

19

boolean equals(Object obj)

將此 Font 物件與指定的 Object 進行比較。

20

protected void finalize()

釋放本機 Font 物件。

21

Map<TextAttribute,?> getAttributes()

返回此 Font 中可用的字型屬性對映。

22

AttributedCharacterIterator.Attribute[] getAvailableAttributes()

返回此 Font 支援的所有屬性的鍵。

23

byte getBaselineFor(char c)

返回顯示此字元的適當基線。

24

String getFamily()

返回此 Font 的族名稱。

25

String getFamily(Locale l)

返回此 Font 的族名稱(針對指定的區域設定進行了本地化)。

26

static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)

返回適合屬性的 Font。

27

static Font getFont(String nm)

從系統屬性列表中返回 Font 物件。

28

static Font getFont(String nm, Font font)

從系統屬性列表中獲取指定的 Font。

29

String getFontName()

返回此 Font 的字體面名稱。

30

String getFontName(Locale l)

返回 Font 的字體面名稱(針對指定的區域設定進行了本地化)。

31

float getItalicAngle()

返回此 Font 的斜體角度。

32

LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的引數建立的 LineMetrics 物件。

33

LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的引數建立的 LineMetrics 物件。

34

LineMetrics getLineMetrics(String str, FontRenderContext frc)

返回使用指定的字串和 FontRenderContext 建立的 LineMetrics 物件。

35

LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)

返回使用指定的引數建立的 LineMetrics 物件。

36

Rectangle2D getMaxCharBounds(FontRenderContext frc)

返回在指定的 FontRenderContext 中定義的具有最大邊界的字元的邊界。

37

int getMissingGlyphCode()

返回當此 Font 沒有指定 Unicode 程式碼點的字形時使用的 glyphCode。

38

String getName()

返回此 Font 的邏輯名稱。

39

int getNumGlyphs()

返回此 Font 中的字形數。

40

java.awt.peer.FontPeer getPeer()

已棄用。字型渲染現在與平臺無關。

41

String getPSName()

返回此 Font 的 PostScript 名稱。

42

int getSize()

返回此 Font 的點大小(四捨五入為整數)。

43

float getSize2D()

返回此 Font 的點大小(浮點值)。

44

Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字元陣列的邏輯邊界。

45

Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的 CharacterIterator 中索引的字元的邏輯邊界。

46

Rectangle2D getStringBounds(String str, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字串的邏輯邊界。

47

Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)

返回在指定的 FontRenderContext 中指定的字串的邏輯邊界。

48

int getStyle()

返回此 Font 的樣式。

49

AffineTransform getTransform()

返回與此 Font 關聯的變換的副本。

50

int hashCode()

返回此 Font 的雜湊碼。

51

boolean hasLayoutAttributes()

如果此 Font 包含需要額外佈局處理的屬性,則返回 true。

52

boolean hasUniformLineMetrics()

檢查此 Font 是否具有統一的行指標。

53

boolean isBold()

指示此 Font 物件的樣式是否為 BOLD。

54

boolean isItalic()

指示此 Font 物件的樣式是否為 ITALIC。

55

boolean isPlain()

指示此 Font 物件的樣式是否為 PLAIN。

56

boolean isTransformed()

指示此 Font 物件是否具有影響其大小(除了 Size 屬性之外)的變換。

57

GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)

返回一個新的 GlyphVector 物件,如果可能,執行文字的完整佈局。

58

String toString()

將此 Font 物件轉換為字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Font 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
      Font italicFont = new Font("Serif", Font.ITALIC, 24);        
      g2.setFont(italicFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 120); 
      Font boldFont = new Font("Serif", Font.BOLD, 24);        
      g2.setFont(boldFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 170); 
      Font boldItalicFont = new Font("Serif", Font.BOLD+Font.ITALIC, 24);        
      g2.setFont(boldItalicFont);
      g2.drawString("Welcome to TutorialsPoint", 50, 220); 
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Font

AWT Color 類

簡介

Color 類以預設的 sRGB 顏色空間或由 ColorSpace 標識的任意顏色空間中的顏色來表示顏色。

類宣告

以下是 **java.awt.Color** 類的宣告

public class Color
   extends Object
      implements Paint, Serializable

欄位

以下是 **java.awt.geom.Arc2D** 類的欄位

  • static Color black -- 黑色。

  • static Color BLACK -- 黑色。

  • static Color blue -- 藍色。

  • static Color BLUE -- 藍色。

  • static Color cyan -- 青色。

  • static Color CYAN -- 青色。

  • static Color DARK_GRAY -- 深灰色。

  • static Color darkGray -- 深灰色。

  • static Color gray -- 灰色。

  • static Color GRAY -- 灰色。

  • static Color green -- 綠色。

  • static Color GREEN -- 綠色。

  • static Color LIGHT_GRAY -- 淺灰色。

  • static Color lightGray -- 淺灰色。

  • static Color magenta -- 品紅色。

  • static Color MAGENTA -- 品紅色。

  • static Color orange -- 橙色。

  • static Color ORANGE -- 橙色。

  • static Color pink -- 粉紅色。

  • static Color PINK -- 粉紅色。

  • static Color red -- 紅色。

  • static Color RED -- 紅色。

  • static Color white -- 白色。

  • static Color WHITE -- 白色。

  • static Color yellow -- 黃色。

  • static Color YELLOW -- 黃色。

類建構函式

序號建構函式和描述
1

Color(ColorSpace cspace, float[] components, float alpha)

在指定的 ColorSpace 中建立一個顏色,其顏色分量在浮點陣列中指定,並且指定了 alpha 值。

2

Color(float r, float g, float b)

使用指定的紅色、綠色和藍色值(範圍為 0.0 到 1.0)建立一個不透明的 sRGB 顏色。

3

Color(float r, float g, float b, float a)

使用指定的紅色、綠色、藍色和 alpha 值(範圍為 0.0 到 1.0)建立一個 sRGB 顏色。

4

Color(int rgb)

使用指定的組合 RGB 值建立一個不透明的 sRGB 顏色,該值由位 16-23 中的紅色分量、位 8-15 中的綠色分量和位 0-7 中的藍色分量組成。

5

Color(int rgba, boolean hasalpha)

使用指定的組合 RGBA 值建立一個 sRGB 顏色,該值由位 24-31 中的 alpha 分量、位 16-23 中的紅色分量、位 8-15 中的綠色分量和位 0-7 中的藍色分量組成。

6

Color(int r, int g, int b)

建立一個不透明的 sRGB 顏色,其紅色、綠色和藍色值在 (0 - 255) 範圍內。

7

Color(int r, int g, int b, int a)

建立一個 sRGB 顏色,其紅色、綠色、藍色和 alpha 值在 (0 - 255) 範圍內。

類方法

序號方法和描述
1

Color brighter()

建立一個新的 Color,它是此 Color 的更亮版本。

2

PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints)

建立並返回一個用於生成純色圖案的 PaintContext。

3

Color darker()

建立一個新的 Color,它是此 Color 的更暗版本。

4

static Color decode(String nm)

將字串轉換為整數,並返回指定的透明 Color。

5

boolean equals(Object obj)

確定另一個物件是否等於此 Color。

6

int getAlpha()

返回 0-255 範圍內的 alpha 分量。

7

int getBlue()

返回預設 sRGB 空間中 0-255 範圍內的藍色分量。

8

static Color getColor(String nm)

在系統屬性中查詢顏色。

9

static Color getColor(String nm, Color v)

在系統屬性中查詢顏色。

10

static Color getColor(String nm, int v)

在系統屬性中查詢顏色。

11

float[] getColorComponents(ColorSpace cspace, float[] compArray)

返回一個浮點陣列,其中僅包含由 cspace 引數指定的 ColorSpace 中 Color 的顏色分量。

12

float[] getColorComponents(float[] compArray)

返回一個浮點陣列,其中僅包含 Color 的顏色分量,位於 Color 的 ColorSpace 中。

13

ColorSpace getColorSpace()

返回此 Color 的 ColorSpace。

14

float[] getComponents(ColorSpace cspace, float[] compArray)

返回一個浮點陣列,其中包含 Color 的顏色和 alpha 分量,位於由 cspace 引數指定的 ColorSpace 中。

15

float[] getComponents(float[] compArray)

返回一個浮點陣列,其中包含 Color 的顏色和 alpha 分量,位於 Color 的 ColorSpace 中。

16

int getGreen()

返回預設 sRGB 空間中 0-255 範圍內的綠色分量。

17

static Color getHSBColor(float h, float s, float b)

基於 HSB 顏色模型的指定值建立一個 Color 物件。

18

int getRed()

返回預設 sRGB 空間中 0-255 範圍內的紅色分量。

19

int getRGB()

返回表示預設 sRGB ColorModel 中顏色的 RGB 值。

20

float[] getRGBColorComponents(float[] compArray)

返回一個浮點陣列,其中僅包含 Color 的顏色分量,位於預設 sRGB 顏色空間中。

21

float[] getRGBComponents(float[] compArray)

返回一個浮點陣列,其中包含 Color 的顏色和 alpha 分量,以預設 sRGB 顏色空間表示。

22

int getTransparency()

返回此 Color 的透明模式。

23

int hashCode()

計算此 Color 的雜湊碼。

24

static int HSBtoRGB(float hue, float saturation, float brightness)

將由 HSB 模型指定的顏色的分量轉換為預設 RGB 模型的等效值集。

25

static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals)

將由預設 RGB 模型指定的顏色的分量轉換為色相、飽和度和亮度的等效值集,它們是 HSB 模型的三個分量。

26

String toString()

返回此 Color 的字串表示形式。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

Color 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.setColor(Color.red);
      g2.drawString("Welcome to TutorialsPoint", 50, 70); 
      g2.setColor(Color.GRAY);
      g2.drawString("Welcome to TutorialsPoint", 50, 120);  
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT Color

AWT BasicStroke 類

簡介

BasicStroke 類以預設的 sRGB 顏色空間或由 ColorSpace 標識的任意顏色空間中的顏色來表示顏色。

類宣告

以下是java.awt.BasicStroke類的宣告

public class BasicStroke
   extends Object
      implements Stroke

欄位

以下是 **java.awt.geom.Arc2D** 類的欄位

  • static int CAP_BUTT -- 以不新增任何裝飾的方式結束未閉合的子路徑和虛線段。

  • static int CAP_ROUND -- 以圓形裝飾結束未閉合的子路徑和虛線段,該裝飾的半徑等於筆寬的一半。

  • static int CAP_SQUARE -- 以正方形投影結束未閉合的子路徑和虛線段,該投影超出線段末端,延伸距離等於線寬的一半。

  • static int JOIN_BEVEL -- 透過用直線段連線其寬輪廓的外角來連線路徑段。

  • static int JOIN_MITER -- 透過擴充套件其外部邊緣直到它們相遇來連線路徑段。

  • static int JOIN_ROUND -- 透過以線寬一半的半徑圓角連線路徑段。

類建構函式

序號建構函式和描述
1

BasicStroke()

使用所有屬性的預設值構造一個新的 BasicStroke。

2

BasicStroke(float width)

使用指定的線寬和端點和連線樣式的預設值構造一個實心 BasicStroke。

3

BasicStroke(float width, int cap, int join)

使用指定的屬性構造一個實心 BasicStroke。

4

BasicStroke(float width, int cap, int join, float miterlimit)

使用指定的屬性構造一個實心 BasicStroke。

5

BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)

使用指定的屬性構造一個新的 BasicStroke。

類方法

序號方法和描述
1

Shape createStrokedShape(Shape s)

返回一個 Shape,其內部定義了指定 Shape 的描邊輪廓。

2

boolean equals(Object obj)

透過首先測試它是否是 BasicStroke,然後將其寬度、連線、端點、斜接限制、虛線和虛線相位屬性與此 BasicStroke 的屬性進行比較,來測試指定物件是否等於此 BasicStroke。

3

float[] getDashArray()

返回表示虛線段長度的陣列。

4

float getDashPhase()

返回當前虛線相位。

5

int getEndCap()

返回端點樣式。

6

int getLineJoin()

返回線連線樣式。

7

float getLineWidth()

返回線寬。

8

float getMiterLimit()

返回斜接連線的限制。

9

int hashCode()

返回此描邊的雜湊碼。

繼承的方法

此類繼承自以下類的方法

  • java.lang.Object

BasicStroke 示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 **D:/ > AWT > com > tutorialspoint > gui >** 中

AWTGraphicsDemo.java
package com.tutorialspoint.gui;

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

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      g2.setStroke(new BasicStroke(3.0f));
      g2.setPaint(Color.blue);

      Rectangle2D shape = new Rectangle2D.Float();
      shape.setFrame(100, 150, 200,100);
      g2.draw(shape);

      Rectangle2D shape1 = new Rectangle2D.Float();
      shape1.setFrame(110, 160, 180,80);
      g2.setStroke(new BasicStroke(1.0f));
   
      g2.draw(shape1);
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.setColor(Color.DARK_GRAY);
      g2.drawString("TutorialsPoint", 130, 200);
   }
}

使用命令提示符編譯程式。轉到 **D:/ > AWT** 並鍵入以下命令。

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

如果沒有任何錯誤,則表示編譯成功。使用以下命令執行程式。

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

驗證以下輸出

AWT BasicStroke
廣告