AWT - 快速指南
图形用户界面
图形用户界面(GUI)通过一些图形组件提供用户交互。 例如,我们的底层操作系统还通过窗口,框架,面板,按钮,文本字段,TextArea,列表框,组合框,标签,复选框等提供GUI。这些都称为组件。 使用这些组件,我们可以为应用程序创建交互式用户界面。
GUI为最终用户提供结果以响应引发的事件.GUI完全基于事件。 例如,单击按钮,关闭窗口,打开窗口,在textarea中键入内容等。这些活动称为events.GUI使最终用户更容易使用应用程序。 这也让他们感兴趣。
基本术语
术语 | 描述 |
---|---|
Component | 组件是具有图形表示的对象,该图形表示可以显示在屏幕上并且可以与用户交互。 例如图形用户界面的按钮,复选框,列表和滚动条。 |
Container | Container对象是可以包含其他组件的组件。添加到容器的组件在列表中被跟踪。 列表的顺序将定义组件在容器内的前后堆叠顺序。 如果在将容器添加到容器时未指定索引,则会将其添加到列表的末尾。 |
Panel | Panel提供了一个空间,应用程序可以在其中附加任何其他组件,包括其他面板。 |
Window | 窗口是一个矩形区域,显示在屏幕上。 在不同的窗口中我们可以执行不同的程序并显示不同的数据 窗口为我们提供了多任务环境。 窗口必须具有框架,对话框或在构造时定义为其所有者的其他窗口。 |
Frame | 框架是一个顶级窗口,带有标题和边框。 框架的大小包括为边框指定的任何区域。 帧封装window 。 它有标题栏,菜单栏,边框和调整大小的角落。 |
Canvas | Canvas组件表示应用程序可以绘制的屏幕的空白矩形区域。 应用程序还可以从Canvas组件的空白区域捕获来自使用的输入事件。 |
基于GUI的应用程序的示例
以下是基于GUI的应用程序的一些示例。
自动柜员机(ATM)
航空票务系统
火车站的信息亭
移动应用
导航系统
GUI优于CUI的优点
GUI提供图形图标以进行交互,而CUI(字符用户界面)提供简单的基于文本的界面。
另一方面,GUI使应用程序更具娱乐性和趣味性。
每次我们必须输入任务命令时,GUI在CUI中提供单击和执行环境。
新用户可以通过可视指示器轻松地与图形用户界面交互,但在Character用户界面中很难。
GUI提供了很多文件系统和操作系统的控件,而在CUI中你必须使用难以记忆的命令。
GUI中的Windows概念允许用户一次查看,操作和控制多个应用程序,而在CUI中,用户可以一次控制一个任务。
GUI提供了多任务环境,因为CUI也可以,但CUI不像GUI那样提供相同的易用性。
使用GUI可以更轻松地控制和导航操作系统,这在命令用户界面中变得非常慢。 GUI可以轻松定制。
Environment Setup
本节将指导您如何在计算机上下载和设置Java。 请按照以下步骤设置环境。
Java SE可从链接Download Java免费获得。 因此,您下载基于您的操作系统的版本。
按照说明下载java并运行.exe以在您的计算机上安装Java。 在计算机上安装Java后,需要设置环境变量以指向正确的安装目录:
设置Windows 2000/XP的路径:
假设您已在c:\Program Files\java\jdk目录中安装了Java:
右键单击“我的电脑”,然后选择“属性”。
单击“高级”选项卡下的“环境变量”按钮。
现在改变'Path'变量,使它也包含Java可执行文件的路径。 例如,如果路径当前设置为“C:\WINDOWS\SYSTEM32”,则将路径更改为“C:\WINDOWS\SYSTEM32; c:\Program Files\java\jdk\bin”。
设置Windows 95/98/ME的路径:
假设您已在c:\Program Files\java\jdk目录中安装了Java:
编辑'C:\autoexec.bat'文件并在结尾添加以下行:
'SET PATH =%PATH%; C:\Program Files\java\jdk\bin'
设置Linux,UNIX,Solaris,FreeBSD的路径:
应将环境变量PATH设置为指向已安装Java二进制文件的位置。 如果您在执行此操作时遇到问题,请参阅您的shell文档。
例如,如果你使用bash作为shell,那么你可以将以下行添加到'.bashrc的末尾:export PATH =/path/to/java:$ PATH'
热门Java编辑:
要编写java程序,您需要一个文本编辑器。 市场上还有更复杂的IDE。 但就目前而言,您可以考虑以下其中一项:
Notepad :在Windows机器上,您可以使用任何简单的文本编辑器,如记事本(本教程推荐),TextPad。
Netbeans :是一个开源且免费的Java IDE,可以从http://www.netbeans.org/index.html下载。
Eclipse :也是由eclipse开源社区开发的java IDE,可以从http://www.eclipse.org/下载。
AWT Controls
每个用户界面都考虑以下三个主要方面:
UI elements :这是用户最终看到并与之交互的核心视觉元素。 GWT提供了大量广泛使用的常用元素,从基本到复杂,我们将在本教程中介绍。
Layouts:它们定义了如何在屏幕上组织UI元素,并为GUI(图形用户界面)提供最终外观。 这一部分将在布局章节中介绍。
Behavior:这些是用户与UI元素交互时发生的事件。 这部分将在事件处理章节中介绍。
每个AWT控件都从Component类继承属性。
AWT Component Class
介绍 (Introduction)
类Component是AWT的非菜单用户界面控件的抽象基类。 Component表示具有图形表示的对象。
类声明
以下是java.awt.Component类的声明:
public abstract class Component
extends Object
implements ImageObserver, MenuContainer, Serializable
字段 (Field)
以下是java.awt.Component类的字段:
static float BOTTOM_ALIGNMENT - getAlignmentY的易用常量。
static float CENTER_ALIGNMENT - getAlignmentY和getAlignmentX的易用常量。
static float LEFT_ALIGNMENT - getAlignmentX的易用常量。
static float RIGHT_ALIGNMENT - getAlignmentX的易用常量。
static float TOP_ALIGNMENT - getAlignmentY()的易用常量。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Component() 这将创建一个新的组件。 |
类方法
SN | 方法和描述 |
---|---|
1 | boolean action(Event evt, Object what) 已过时。 从JDK 1.1版开始,应该在触发动作事件的组件上将此组件注册为ActionListener。 |
2 | void add(PopupMenu popup) 将指定的弹出菜单添加到组件。 |
3 | void addComponentListener(ComponentListener l) 添加指定的组件侦听器以从此组件接收组件事件。 |
4 | void addFocusListener(FocusListener l) 添加指定的焦点侦听器,以便在此组件获得输入焦点时从此组件接收焦点事件。 |
5 | void addHierarchyBoundsListener(HierarchyBoundsListener l) 添加指定的层次结构边界侦听器,以便在此容器所属的层次结构发生更改时从此组件接收层次结构边界事件。 |
6 | void addHierarchyListener(HierarchyListener l) 添加指定的层次结构侦听器,以便在此容器所属的层次结构发生更改时从此组件接收层次结构更改事件。 |
7 | void addInputMethodListener(InputMethodListener l) 添加指定的输入方法侦听器以从此组件接收输入方法事件。 |
8 | void addKeyListener(KeyListener l) 添加指定的键侦听器以从此组件接收键事件。 |
9 | void addMouseListener(MouseListener l) 添加指定的鼠标侦听器以从此组件接收鼠标事件。 |
10 | void addMouseMotionListener(MouseMotionListener l) 添加指定的鼠标移动侦听器以从此组件接收鼠标移动事件。 |
11 | void addMouseWheelListener(MouseWheelListener l) 添加指定的鼠标滚轮侦听器以从此组件接收鼠标滚轮事件。 |
12 | void addNotify() 通过将此组件连接到本机屏幕资源,可以显示此组件。 |
13 | void addPropertyChangeListener(PropertyChangeListener listener) 将PropertyChangeListener添加到侦听器列表。 |
14 | void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) 将PropertyChangeListener添加到特定属性的侦听器列表中。 |
15 | void applyComponentOrientation(ComponentOrientation orientation) 设置此组件的ComponentOrientation属性及其中包含的所有组件。 |
16 | boolean areFocusTraversalKeysSet(int id) 返回是否已为此Component显式定义了给定焦点遍历操作的焦点遍历键Set。 |
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 version 1.1开始,由dispatchEvent(AWTEvent e)取代。 |
26 | void disable() 已过时。 从JDK version 1.1开始,由setEnabled(boolean)取代。 |
27 | protected void disableEvents(long eventsToDisable) 禁用由指定的事件掩码参数定义的事件传递给此组件。 |
28 | void dispatchEvent(AWTEvent e) 将事件调度到此组件或其子组件之一。 |
29 | void doLayout() 提示布局管理器布置此组件。 |
30 | void enable() 已过时。 从JDK version 1.1开始,由setEnabled(boolean)取代。 |
31 | void enable(boolean b) 已过时。 从JDK version 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() 获取与此Component关联的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) 将此组件的边界存储为return value 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() 获取与此Component关联的DropTarget。 |
57 | Container getFocusCycleRootAncestor() 返回Container,它是此Component焦点遍历循环的焦点循环根。 |
58 | FocusListener[] getFocusListeners() 返回在此组件上注册的所有焦点侦听器的数组。 |
59 | Set《AWTKeyStroke》 getFocusTraversalKeys(int id) 返回此Component的给定遍历操作的焦点遍历键Set。 |
60 | boolean getFocusTraversalKeysEnabled() 返回是否为此Component启用了焦点遍历键。 |
61 | Font getFont() 获取此组件的字体。 |
62 | FontMetrics getFontMetrics(Font font) 获取指定字体的字体度量标准。 |
63 | Color getForeground() 获取此组件的前景色。 |
64 | Graphics getGraphics() 为此组件创建图形上下文。 |
65 | GraphicsConfiguration getGraphicsConfiguration() 获取与此Component关联的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) 返回当前在此Component上注册为FooListeners的所有对象的数组。 |
75 | Locale getLocale() 获取此组件的语言环境。 |
76 | Point getLocation() 以指定组件左上角的点的形式获取此组件的位置。 |
77 | Point getLocation(Point rv) 将此组件的x,y原点存储为return value rv并返回rv。 |
78 | Point getLocationOnScreen() 以点的形式获取此组件的位置,指定组件在屏幕坐标空间中的左上角。 |
79 | Dimension getMaximumSize() 获取此组件的最大大小。 |
80 | Dimension getMinimumSize() 获取此组件的最小大小。 |
81 | MouseListener[] getMouseListeners() 返回在此组件上注册的所有鼠标侦听器的数组。 |
82 | MouseMotionListener[] getMouseMotionListeners() 返回在此组件上注册的所有鼠标移动侦听器的数组。 |
83 | Point getMousePosition() 如果Component直接位于鼠标指针下,则返回此Component的坐标空间中鼠标指针的位置,否则返回null。 |
84 | MouseWheelListener[] getMouseWheelListeners() 返回在此组件上注册的所有鼠标滚轮侦听器的数组。 |
85 | String getName() 获取组件的名称。 |
86 | Container getParent() 获取此组件的父级。 |
87 | java.awt.peer.ComponentPeer getPeer() Deprecated. As of JDK version 1.1, programs should not directly manipulate peers; replaced by boolean isDisplayable(). |
88 | Dimension getPreferredSize() 获取此组件的首选大小。 |
89 | PropertyChangeListener[] getPropertyChangeListeners() 返回在此组件上注册的所有属性更改侦听器的数组。 |
90 | PropertyChangeListener[] getPropertyChangeListeners(String propertyName) 返回已与命名属性关联的所有侦听器的数组。 |
91 | Dimension getSize() 以Dimension对象的形式返回此组件的大小。 |
92 | Dimension getSize(Dimension rv)Stores the width/height of this component into return value rv and return 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() 如果此Component是焦点所有者,则返回true。 |
101 | void hide() 已过时。 从JDK version 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 version 1.1开始,由contains(int,int)取代。 |
104 | void invalidate() 使此组件无效。 |
105 | boolean isBackgroundSet() 返回是否已为此Component显式设置背景颜色。 |
106 | boolean isCursorSet() 返回是否已为此Component显式设置游标。 |
107 | boolean isDisplayable() 确定此组件是否可显示。 |
108 | boolean isDoubleBuffered() 如果将此组件绘制到屏幕外图像( buffer ),则返回true 之后会复制到屏幕上。 |
109 | boolean isEnabled() 确定是否启用此组件。 |
110 | boolean isFocusable() 返回是否可以聚焦此Component。 |
111 | boolean isFocusCycleRoot(Container container) 返回指定的Container是否是此Component的焦点遍历循环的焦点循环根。 |
112 | boolean isFocusOwner() 如果此Component是焦点所有者,则返回true。 |
113 | boolean isFocusTraversable() 已过时。 从1.4开始,由isFocusable()取代。 |
114 | boolean isFontSet() 返回是否已为此Component显式设置字体。 |
115 | boolean isForegroundSet() 返回是否已为此Component显式设置前景色。 |
116 | boolean isLightweight() 轻量级组件没有本机工具包同级。 |
117 | boolean isMaximumSizeSet() 如果已将最大大小设置为非空值,则返回true,否则返回false。 |
118 | boolean isMinimumSizeSet() 返回是否已使用非null值调用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 version 1.1开始,由processKeyEvent(KeyEvent)取代。 |
125 | boolean keyUp(Event evt,int key) 已过时。 从JDK version 1.1开始,由processKeyEvent(KeyEvent)取代。 |
126 | void layout() 已过时。 从JDK 1.1版开始,由doLayout()取代。 |
127 | void list() 将此组件的列表打印到标准系统输出流System.out。 |
128 | void list(PrintStream out) 将此组件的列表打印到指定的输出流。 |
129 | void list(PrintStream out,int indent) 从指定的缩进开始将列表打印到指定的打印流。 |
130 | void list(PrintWriter out) 将列表打印到指定的打印编写器。 |
131 | void list(PrintWriter out,int indent) 从指定的缩进开始将列表打印到指定的打印编写器。 |
132 | Component locate(int x,int y) 已过时。 从JDK version 1.1开始,由getComponentAt(int,int)取代。 |
133 | Point location() 已过时。 从JDK version 1.1开始,由getLocation()取代。 |
134 | boolean lostFocus(Event evt, Object what) 已过时。 从JDK version 1.1开始,由processFocusEvent(FocusEvent)取代。 |
135 | boolean mouseDown(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseEvent(MouseEvent)取代。 |
136 | boolean mouseDrag(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseMotionEvent(MouseEvent)取代。 |
137 | boolean mouseEnter(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseEvent(MouseEvent)取代。 |
138 | boolean mouseExit(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseEvent(MouseEvent)取代.. |
139 | boolean mouseMove(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseMotionEvent(MouseEvent)取代.. |
140 | boolean mouseUp(Event evt,int x,int y) 已过时。 从JDK version 1.1开始,由processMouseEvent(MouseEvent)取代。 |
141 | void move(int x,int y) 已过时。 从JDK version 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 version 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() 请求此Component获取输入焦点,并且此Component的顶级祖先成为焦点Window。 |
177 | protected boolean requestFocus(boolean temporary) 请求此Component获取输入焦点,并且此Component的顶级祖先成为焦点Window。 |
178 | boolean requestFocusInWindow() 如果此Component的顶级祖先已经是焦点窗口,则请求此Component获取输入焦点。 |
179 | protected boolean requestFocusInWindow(boolean temporary) 如果此Component的顶级祖先已经是焦点窗口,则请求此Component获取输入焦点。 |
180 | void reshape(int x,int y,int width,int height) 已过时。 从JDK version 1.1开始,由setBounds(int,int,int,int)取代。 |
181 | void resize(Dimension d) 已过时。 从JDK version 1.1开始,由setSize(Dimension)取代。 |
182 | void resize(int width,int height) 已过时。 从JDK version 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) 将此Component的可聚焦状态设置为指定值。 |
191 | void setFocusTraversalKeys(int id, Set《? extends AWTKeyStroke》 keystrokes) 为此Component的给定遍历操作设置焦点遍历键。 |
192 | void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled) 设置是否为此Component启用焦点遍历键。 |
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) 调整此组件的大小,使其具有宽度宽度和高度。 |
205 | void setVisible(boolean b) 根据参数b的值显示或隐藏此组件。 |
206 | void show() 已过时。 从JDK version 1.1开始,由setVisible(boolean)取代。 |
207 | void show(boolean b) 已过时。 从JDK version 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 version 1.1开始,由getPreferredSize()取代。 |
220 | boolean prepareImage(Image image, ImageObserver observer) 准备要在此组件上呈现的图像。 |
221 | Dimension minimumSize() 已过时。 从JDK 1.1版开始,由getMinimumSize()取代。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
AWT Label Class
介绍 (Introduction)
Label是被动控件,因为它在用户访问时不会创建任何事件。 标签控件是Label的对象。 标签显示一行只读文本。 但是,文本可以由应用程序员更改,但最终用户不能以任何方式更改。
类声明
以下是java.awt.Label类的声明:
public class Label
extends Component
implements Accessible
字段 (Field)
以下是java.awt.Component类的字段:
static int CENTER - 表示标签应居中。
static int LEFT - 表示标签应左对齐。
static int RIGHT - 表示标签应该是右对齐的。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Label() 构造一个空标签。 |
2 | Label(String text) 使用指定的文本字符串构造一个新标签,左对齐。 |
3 | Label(String text, int alignment) 构造一个新标签,该标签显示具有指定对齐方式的指定文本字符串。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Button Class
介绍 (Introduction)
Button是一个控件组件,它具有标签并在按下时生成事件。 当按下并释放按钮时,AWT通过调用按钮上的processEvent向该按钮发送ActionEvent实例。 按钮的processEvent方法接收按钮的所有事件; 它通过调用自己的processActionEvent方法传递一个动作事件。 后一种方法将动作事件传递给已注册对此按钮生成的动作事件感兴趣的任何动作侦听器。
如果应用程序想要根据按下和释放的按钮执行某些操作,它应该通过调用按钮的addActionListener方法实现ActionListener并注册新的侦听器以从此按钮接收事件。 应用程序可以使用按钮的action命令作为消息传递协议。
类声明
以下是java.awt.Button类的声明:
public class Button
extends Component
implements Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Button() 构造一个带有空字符串的按钮作为其标签。 |
2 | Button(String text) 构造一个具有指定标签的新按钮。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT CheckBox Class
介绍 (Introduction)
复选框控件用于打开(true)或关闭(false)选项。 每个复选框都有一个标签,表示复选框的作用。复选框的状态可以通过单击来更改。
类声明
以下是java.awt.Checkbox类的声明:
public class Checkbox
extends Component
implements ItemSelectable,Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
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) 在指定的复选框组中创建具有指定标签的复选框,并将其设置为指定的状态。 |
类方法
SN | 方法和描述 |
---|---|
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() 确定此复选框是处于on还是off状态。 |
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
CheckBox示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT CheckBoxGroup Class
介绍 (Introduction)
CheckboxGroup类用于对复选框进行分组。
类声明
以下是java.awt.CheckboxGroup类的声明:
public class CheckboxGroup
extends Object
implements Serializable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | CheckboxGroup() () 创建CheckboxGroup的新实例。 |
类方法
SN | 方法和描述 |
---|---|
1 | Checkbox getCurrent() 已过时。 从JDK 1.1版开始,由getSelectedCheckbox()取代。 |
2 | Checkbox getSelectedCheckbox() 从此复选框组中获取当前选项。 |
3 | void setCurrent(Checkbox box) 已过时。 从JDK version 1.1开始,由setSelectedCheckbox(Checkbox)取代。 |
4 | void setSelectedCheckbox(Checkbox box) 将此组中当前选中的复选框设置为指定的复选框。 |
5 | String toString() 返回此复选框组的字符串表示形式,包括其当前选择的值。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
CheckBoxGroup示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT List Class
介绍 (Introduction)
列表表示文本项列表。 可以配置列表,用户可以选择一个项目或多个项目。
类声明
以下是java.awt.List类的声明:
public class List
extends Component
implements ItemSelectable, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | List() 创建一个新的滚动列表。 |
2 | List(int rows) 创建使用指定数量的可见行初始化的新滚动列表。 |
3 | List(int rows, boolean multipleMode) 创建一个初始化的新滚动列表,以显示指定的行数。 |
类方法
返回当前在此List上注册为FooListeners的所有对象的数组。
SN | 方法和描述 |
---|---|
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 version 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() 获取对象数组中此滚动列表中的选定项。 |
30 | int getVisibleIndex() 获取方法makeVisible最后可见的项的索引。 |
31 | boolean isIndexSelected(int index) 确定是否选择了此滚动列表中的指定项。 |
32 | boolean isMultipleMode() 确定此列表是否允许多个选择。 |
33 | boolean isSelected(int index) 已过时。 从JDK version 1.1开始,由isIndexSelected(int)取代。 |
34 | void makeVisible(int index) 使指定索引处的项目可见。 |
35 | Dimension minimumSize() 已过时。 从JDK 1.1版开始,由getMinimumSize()取代。 |
36 | Dimension minimumSize(int rows) 已过时。 从JDK version 1.1开始,由getMinimumSize(int)取代。 |
37 | protected String paramString() 返回表示此滚动列表状态的参数字符串。 |
38 | Dimension preferredSize() 已过时。 从JDK version 1.1开始,由getPreferredSize()取代。 |
39 | Dimension preferredSize(int rows) 已过时。 从JDK version 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 version 1.1开始,由setMultipleMode(boolean)取代。 |
方法继承
该类继承以下类中的方法:
java.awt.Component
java.lang.Object
列表示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT TextField Class
介绍 (Introduction)
textField组件允许用户编辑单行文本。当用户在文本字段中键入键时,事件将发送到TextField。 按键事件可以是按键,按键释放或按键键入。 键事件将传递给已注册的KeyListener。 对于ActionEvent,如果在文本字段上启用了ActionEvent,则可以通过按返回键来触发ActionEvent。
类声明
以下是java.awt.TextField类的声明:
public class TextField
extends TextComponent
类构造函数
SN | 构造函数和描述 |
---|---|
1 | TextField() 构造一个新的文本字段。 |
2 | TextField(int columns) 构造具有指定列数的新空文本字段。 |
3 | TextField(String text) 构造使用指定文本初始化的新文本字段。 |
4 | TextField(String text, int columns) 构造一个使用要显示的指定文本初始化的新文本字段,并且宽度足以容纳指定数量的列。 |
类方法
SN | 方法和描述 |
---|---|
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) Gets the minumum dimensions for a text field with the specified number of columns. |
11 | Dimension getPreferredSize() 获取此文本字段的首选大小。 |
12 | Dimension getPreferredSize(int columns) 获取具有指定列数的此文本字段的首选大小。 |
13 | Dimension minimumSize() 已过时。 从JDK 1.1版开始,由getMinimumSize()取代。 |
14 | Dimension minimumSize(int columns) 已过时。 从JDK version 1.1开始,由getMinimumSize(int)取代。 |
15 | protected String paramString() 返回表示此TextField状态的字符串。 |
16 | Dimension preferredSize() 已过时。 从JDK version 1.1开始,由getPreferredSize()取代。 |
17 | Dimension preferredSize(int columns) 已过时。 从JDK version 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 version 1.1开始,由setEchoChar(char)取代。 |
24 | void setText(String t) 将此文本组件显示的文本设置为指定的文本。 |
方法继承
该类继承以下类中的方法:
java.awt.TextComponent
java.awt.Component
java.lang.Object
TextField示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT TextArea Class
介绍 (Introduction)
AWT中的TextArea控件为我们提供了多行编辑器区域。 用户可以在此处输入他想要的内容。 当文本区域中的文本变得大于可视区域时,将自动显示滚动条,这有助于我们向上和向下以及向右和向左滚动文本。
类声明
以下是java.awt.TextArea类的声明:
public class TextArea
extends TextComponent
字段 (Field)
以下是java.awt.TextArea类的字段:
static int SCROLLBARS_BOTH - 创建并显示垂直和水平滚动条。
static int SCROLLBARS_HORIZONTAL_ONLY - 仅创建和显示水平滚动条。
static int SCROLLBARS_NONE - 不为文本区域创建或显示任何滚动条。
static int SCROLLBARS_VERTICAL_ONLY - 仅创建和显示垂直滚动条。
类构造函数
SN | 构造函数和描述 |
---|---|
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) 构造具有指定文本的新文本区域,并指定行,列和滚动条可见性。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 创建TextArea的对等方。 |
2 | void append(String str) 将给定文本追加到文本区域的当前文本。 |
3 | void appendText(String str) 已过时。 从JDK version 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 version 1.1开始,由insert(String,int)取代。 |
14 | Dimension minimumSize() 已过时。 从JDK 1.1版开始,由getMinimumSize()取代。 |
15 | Dimension minimumSize(int rows, int columns) 已过时。 从JDK version 1.1开始,由getMinimumSize(int,int)取代。 |
16 | protected String paramString() 返回表示此TextArea状态的字符串。 |
17 | Dimension preferredSize() 已过时。 从JDK version 1.1开始,由getPreferredSize()取代。 |
18 | Dimension preferredSize(int rows, int columns) 已过时。 从JDK version 1.1开始,由getPreferredSize(int,int)取代。 |
19 | void replaceRange(String str, int start, int end) 用指定的替换文本替换指示的开始和结束位置之间的文本。 |
20 | void replaceText(String str, int start, int end) 已过时。 从JDK version 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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Choice Class
介绍 (Introduction)
选择控件用于显示弹出菜单的选择。 选择的选项显示在菜单的顶部。
类声明
以下是java.awt.Choice类的声明:
public class Choice
extends Component
implements ItemSelectable, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Choice() () 创建一个新的选择菜单。 |
类方法
SN | 方法和描述 |
---|---|
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) 从“选择”菜单中删除第一个项目。 |
20 | void removeAll() 从选择菜单中删除所有项目。 |
21 | void removeItemListener(ItemListener l) 删除指定的项侦听器,以便它不再从此Choice菜单接收项事件。 |
22 | void select(int pos) 将此“选择”菜单中的选定项目设置为指定位置的项目。 |
23 | void select(String str) 将此Choice菜单中的选定项设置为名称等于指定字符串的项。 |
方法继承
该类继承以下类中的方法:
java.awt.Component
java.lang.Object
选择范例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Canvas Class
介绍 (Introduction)
画布控件表示一个矩形区域,应用程序可以绘制某些东西或者可以接收用户创建的输入。
类声明
以下是java.awt.Canvas类的声明:
public class Canvas
extends Component
implements Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Canvas() 构造一个新的Canvas。 |
2 | Canvas(GraphicsConfiguration config) 给定GraphicsConfiguration对象构造一个新的Canvas。 |
类方法
SN | 方法和描述 |
---|---|
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
画布示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Image Class
介绍 (Introduction)
图像控件是表示图形图像的所有图像类的超类。
类声明
以下是java.awt.Image类的声明:
public abstract class Image
extends Object
字段 (Field)
以下是java.awt.Image类的字段:
protected float accelerationPriority - 加速此图像的优先级。
static int SCALE_AREA_AVERAGING - 使用Area Averaging图像缩放算法。
static int SCALE_DEFAULT - 使用默认的图像缩放算法。
static int SCALE_FAST - 选择一种图像缩放算法,该算法比缩放图像的平滑度具有更高的缩放速度优先级。
static int SCALE_REPLICATE - 使用ReplicateScaleFilter类中包含的图像缩放算法。
static int SCALE_SMOOTH - 选择图像缩放算法,该算法为图像平滑度提供比缩放速度更高的优先级。
static Object UndefinedProperty - 只要获取未为特定图像定义的属性,就应返回UndefinedProperty对象。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Image() |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Scrollbar Class
介绍 (Introduction)
滚动条控件表示滚动条组件,以便用户可以从值范围中进行选择。
类声明
以下是java.awt.Scrollbar类的声明:
public class Scrollbar
extends Component
implements Adjustable, Accessible
字段 (Field)
以下是java.awt.Image类的字段:
static int HORIZONTAL - 表示水平滚动条的常量。
static int VERTICAL - 表示垂直滚动条的常量。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Scrollbar() 构造一个新的垂直滚动条。 |
2 | Scrollbar(int orientation) 构造具有指定方向的新滚动条。 |
3 | Scrollbar(int orientation, int value, int visible, int minimum, int maximum) 构造一个具有指定方向,初始值,可见数量以及最小值和最大值的新滚动条。 |
类方法
AccessibleContext getAccessibleContext()获取与此Scrollbar关联的AccessibleContext。
AdjustmentListener [] getAdjustmentListeners()返回在此滚动条上注册的所有调整侦听器的数组。
返回此Scrollbar上当前注册为FooListeners的所有对象的数组。
SN | 方法和描述 |
---|---|
1 | void addAdjustmentListener(AdjustmentListener l) 添加指定的调整侦听器以从此滚动条接收AdjustmentEvent的实例。 |
2 | void addNotify() 创建Scrollbar的同伴。 |
3 | int getBlockIncrement() 获取此滚动条的块增量。 |
4 | int getLineIncrement() 已过时。 从JDK version 1.1开始,由getUnitIncrement()取代。 |
5 | int getMaximum() 获取此滚动条的最大值。 |
6 | int getMinimum() 获取此滚动条的最小值。 |
7 | int getOrientation() 返回此滚动条的方向。 |
8 | int getPageIncrement() 已过时。 从JDK version 1.1开始,由getBlockIncrement()取代。 |
9 | int getUnitIncrement() 获取此滚动条的单位增量。 |
10 | int getValue() 获取此滚动条的当前值。 |
11 | boolean getValueIsAdjusting() 如果值由于用户采取的操作而处于更改过程中,则返回true。 |
12 | int getVisible() 已过时。 从JDK version 1.1开始,由getVisibleAmount()取代。 |
13 | int getVisibleAmount() 获取此滚动条的可见量。 |
14 | protected String paramString() 返回表示此Scrollbar状态的字符串。 |
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 version 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 version 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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Dialog Class
介绍 (Introduction)
对话框控件表示一个顶级窗口,其中包含标题和边框,用于从用户那里获取某种形式的输入。
类声明
以下是java.awt.Dialog类的声明:
public class Dialog
extends Window
字段 (Field)
以下是java.awt.Image类的字段:
static Dialog.ModalityType DEFAULT_MODALITY_TYPE - 模式对话框的默认模态类型。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Dialog(Dialog owner) 使用指定的所有者Dialog和一个空标题构造一个最初不可见的无模式Dialog。 |
2 | Dialog(Dialog owner, String title) 使用指定的所有者对话框和标题构造一个最初不可见的无模式Dialog。 |
3 | Dialog(Dialog owner, String title, boolean modal) 使用指定的所有者对话框,标题和模态构造一个最初不可见的Dialog。 |
4 | Dialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc) 使用指定的所有者Dialog,title,modality和GraphicsConfiguration构造一个最初不可见的Dialog。 |
5 | Dialog(Frame owner) 使用指定的所有者Frame和空标题构造一个最初不可见的无模式Dialog。 |
6 | Dialog(Frame owner, boolean modal) 使用指定的所有者Frame和modality以及一个空标题构造一个最初不可见的Dialog。 |
7 | Dialog(Frame owner, String title) 使用指定的所有者Frame和title构造一个最初不可见的无模式Dialog。 |
8 | Dialog(Frame owner, String title, boolean modal) 使用指定的所有者Frame,title和modality构造一个最初不可见的Dialog。 |
9 | Dialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc) 使用指定的所有者Frame,title,modality和GraphicsConfiguration构造一个最初不可见的Dialog。 |
10 | Dialog(Window owner) 使用指定的所有者Window和空标题构造一个最初不可见的无模式Dialog。 |
11 | Dialog(Window owner, Dialog.ModalityType modalityType) 使用指定的所有者Window和modality以及一个空标题构造一个最初不可见的Dialog。 |
12 | Dialog(Window owner, String title) 使用指定的所有者Window和title构造一个最初不可见的无模式Dialog。 |
13 | Dialog(Window owner, String title, Dialog.ModalityType modalityType) 使用指定的所有者Window,title和modality构造一个最初不可见的Dialog。 |
14 | Dialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc) 使用指定的所有者Window,title,modality和GraphicsConfiguration构造一个最初不可见的Dialog |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 通过将此对话框连接到本机屏幕资源,可以显示此对话框。 |
2 | AccessibleContext getAccessibleContext() 获取与此Dialog关联的AccessibleContext。 |
3 | Dialog.ModalityType getModalityType() 返回此对话框的模态类型。 |
4 | String getTitle() 获取对话框的标题。 |
5 | void hide() 已过时。 从JDK 1.5版开始,由setVisible(boolean)取代。 |
6 | boolean isModal() 指示对话框是否为模态。 |
7 | boolean isResizable() 指示用户是否可以调整此对话框的大小。 |
8 | boolean isUndecorated() 指示此对话框是否未修饰。 |
9 | protected String paramString() 返回表示此对话框状态的字符串。 |
10 | void setModal(boolean modal) 指定此对话框是否应为模态。 |
11 | void setModalityType(Dialog.ModalityType type) 设置此对话框的模态类型。 |
12 | void setResizable(boolean resizable) 设置此对话框是否可由用户调整大小。 |
13 | void setTitle(String title) 设置对话框的标题。 |
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 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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("iowiki.com", 25,70 );
g.drawString("Version 1.0", 60, 90);
}
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT FileDialog Class
介绍 (Introduction)
FileDialog控件表示一个对话窗口,用户可以从中选择文件。
类声明
以下是java.awt.FileDialog类的声明:
public class FileDialog
extends Dialog
字段 (Field)
以下是java.awt.Image类的字段:
static int LOAD - 此常量值指示文件对话框窗口的目的是查找要从中读取的文件。
static int SAVE - 此常量值表示文件对话框窗口的目的是查找要写入的文件。
类构造函数
SN | 构造函数和描述 |
---|---|
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) 创建一个文件对话框窗口,其中包含用于加载或保存文件的指定标题。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 创建文件对话框的对等方。 |
2 | String getDirectory() 获取此文件对话框的目录。 |
3 | String getFile() 获取此文件对话框的选定文件。 |
4 | FilenameFilter getFilenameFilter() 确定此文件对话框的文件名过滤器。 |
5 | int getMode() 指示此文件对话框是用于从文件加载还是用于保存到文件。 |
6 | protected String paramString() 返回表示此FileDialog窗口状态的字符串。 |
7 | void setDirectory(String dir) 将此文件对话框窗口的目录设置为指定目录。 |
8 | void setFile(String file) 将此文件对话框窗口的选定文件设置为指定文件。 |
9 | void setFilenameFilter(FilenameFilter filter) 将此文件对话框窗口的文件名过滤器设置为指定的过滤器。 |
10 | void setMode(int mode) 设置文件对话框的模式。 |
方法继承
该类继承以下类中的方法:
java.awt.Dialog
java.awt.Window
java.awt.Component
java.lang.Object
FileDialog示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
Event Handling
什么是事件? (What is an Event?)
对象状态的更改称为事件,即事件描述源的状态更改。 由于用户与图形用户界面组件的交互而生成事件。 例如,单击按钮,移动鼠标,通过键盘输入字符,从列表中选择项目,滚动页面是导致事件发生的活动。
事件类型
这些事件大致可分为两类:
Foreground Events - 需要用户直接交互的事件。它们是作为人与图形用户界面中的图形组件交互的结果而生成的。 例如,单击按钮,移动鼠标,通过键盘输入字符,从列表中选择项目,滚动页面等。
Background Events - 需要最终用户交互的事件称为后台事件。 操作系统中断,硬件或软件故障,计时器到期,操作完成是后台事件的示例。
什么是事件处理?
事件处理是控制事件并决定事件发生时应该发生什么的机制。 此机制具有代码,该代码称为事件发生时执行的事件处理程序。 Java使用委托事件模型来处理事件。 该模型定义了生成和处理事件的标准机制。让我们简要介绍一下这个模型。
代表团事件模型具有以下主要参与者:
Source - 源是发生事件的对象。 Source负责向其处理程序提供已发生事件的信息。 Java提供源对象的类。
Listener - 它也称为事件处理程序.Listener负责生成对事件的响应。 从java实现的角度来看,监听器也是一个对象。 监听器等待直到收到事件。 收到事件后,侦听器处理事件然后返回。
这种方法的好处是用户界面逻辑与生成事件的逻辑完全分离。 用户界面元素能够将事件的处理委托给单独的代码段。 在此模型中,需要向源对象注册Listener,以便侦听器可以接收事件通知。 这是处理事件的有效方式,因为事件通知仅发送给想要接收它们的侦听器。
涉及事件处理的步骤
用户单击该按钮并生成事件。
现在自动创建相关事件类的对象,并在同一对象中填充有关源和事件的信息。
事件对象被转发到已注册的侦听器类的方法。
该方法现在被执行并返回。
要记住关于听众的要点
为了设计一个监听器类,我们必须开发一些监听器接口。这些监听器接口预测一些必须由监听器类实现的公共抽象回调方法。
如果您没有实现任何预定义接口,则您的类不能充当源对象的侦听器类。
回调方法
这些是API提供程序提供的方法,由应用程序程序员定义并由应用程序开发人员调用。 这里的回调方法代表一个事件方法。 在响应事件时,java jre将触发回调方法。 所有这些回调方法都在监听器接口中提供。
如果组件想要某个侦听器将侦听它的事件,则源必须将自己注册到侦听器。
事件处理示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtControlDemo.javapackage com.iowiki.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\iowiki\gui\AwtControlDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtControlDemo
验证以下输出
AWT Event Classes
Event类代表事件。 Java为我们提供了各种Event类,但我们将讨论那些更常用的类。
EventObject类
它是从中派生所有事件状态对象的根类。 所有事件都是通过对对象( source的引用构造的,该对象在逻辑上被认为是最初发生事件的对象。 该类在java.util包中定义。
类声明
以下是java.util.EventObject类的声明:
public class EventObject
extends Object
implements Serializable
字段 (Field)
以下是java.util.EventObject类的字段:
protected Object source - 事件最初发生的对象。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | EventObject(Object source) 构建一个典型的事件。 |
类方法
SN | 方法和描述 |
---|---|
1 | Object getSource() 事件最初发生的对象。 |
2 | String toString() 返回此EventObject的String表示形式。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
AWT事件类:
以下是常用事件类的列表。
AWT AWTEvent Class
它是所有AWT事件的根事件类。 该类及其子类取代原始的java.awt.Event类。 该类在java.awt包中定义。 此类有一个名为getID()的方法,可用于确定事件的类型。
类声明
以下是java.awt.AWTEvent类的声明:
public class AWTEvent
extends EventObject
字段 (Field)
以下是java.awt.AWTEvent类的字段:
static int ACTION_FIRST - 用于操作事件的id范围中的第一个数字。
static long ACTION_EVENT_MASK - 用于选择操作事件的事件掩码。
static long ADJUSTMENT_EVENT_MASK - 用于选择调整事件的事件掩码。
static long COMPONENT_EVENT_MASK - 用于选择组件事件的事件掩码。
protected boolean consumed - 控制在源处理事件后是否将事件发送回对等体 - false表示将事件发送给对等体; 真实意味着它不是。
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 - 用于选择窗口状态事件的事件掩码。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | AWTEvent(Event event) 根据1.0样式事件的参数构造AWTEvent对象。 |
2 | AWTEvent(java.lang.Object source, int id) 使用指定的源对象和类型构造AWTEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | protected void consume() 如果可以使用此事件,则消耗此事件。 |
2 | int getID() 返回事件类型。 |
3 | protected boolean isConsumed() 返回是否已使用此事件。 |
4 | java.lang.String paramString() 返回表示此Event事件状态的字符串。 |
5 | void setSource(java.lang.Object newSource) 将事件重新定位到新来源。 |
6 | java.lang.String toString() 返回此对象的String表示形式。 |
方法继承
该类继承以下类中的方法:
java.util.EventObject
java.lang.Object
AWT ActionEvent Class
该类在java.awt.event包中定义。 单击按钮或双击列表项时会生成ActionEvent。
类声明
以下是java.awt.event.ActionEvent类的声明:
public class ActionEvent
extends AWTEvent
字段 (Field)
以下是java.awt.event.ActionEvent类的字段:
static int ACTION_FIRST - 用于操作事件的id范围中的第一个数字。
static int ACTION_LAST - 用于操作事件的id范围中的最后一个数字。
static int ACTION_PERFORMED - 此事件id表示发生了有意义的操作。
static int ALT_MASK - alt修饰符。
static int CTRL_MASK - 控件修饰符。
static int META_MASK - 元修饰符。
static int SHIFT_MASK - 移位修改器。
类构造函数
SN | 构造函数和描述 |
---|---|
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对象。 |
类方法
SN | 方法和描述 |
---|---|
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 Class
InputEvent类是所有组件级输入事件的根事件类。 输入事件在它们发起的源正常处理之前传递给侦听器。 这允许侦听器和组件子类“使用”事件,以便源不会以默认方式处理它们。 例如,在Button组件上使用mousePressed事件将阻止Button被激活。
类声明
以下是java.awt.event.InputEvent类的声明:
public abstract class InputEvent
extends ComponentEvent
字段 (Field)
以下是java.awt.event.InputEvent类的字段:
static int ALT_DOWN_MASK - Alt键扩展修饰符常量。
static int ALT_GRAPH_DOWN_MASK - AltGraph键扩展修饰符常量。
static int ALT_GRAPH_MASK - AltGraph键修饰符常量。
static int ALT_MASK - Alt键修饰符常量。
static int BUTTON1_DOWN_MASK - 鼠标Button1扩展修饰符常量。
static int BUTTON1_MASK - Mouse Button1修饰符常量。
static int BUTTON2_DOWN_MASK - 鼠标Button2扩展修饰符常量。
static int BUTTON2_MASK - Mouse Button2修饰符常量。
static int BUTTON3_DOWN_MASK - 鼠标Button3扩展修饰符常量。
static int BUTTON3_MASK - 鼠标Button3修饰符常量。
static int CTRL_DOWN_MASK - Control键扩展修饰符常量。
static int CTRL_MASK - Control键修饰符常量。
static int META_DOWN_MASK - Meta键扩展修饰符常量。
static int META_MASK - 元键修饰符常量。
static int SHIFT_DOWN_MASK - Shift键扩展修饰符常量。
static int SHIFT_MASK - Shift键修饰符常量。
类方法
SN | 方法和描述 |
---|---|
1 | void consume() 使用此事件,以便由发起它的源以默认方式处理它。 |
2 | int getModifiers() 返回此事件的修饰符掩码。 |
3 | int getModifiersEx() 返回此事件的扩展修饰符掩码。 |
4 | static String getModifiersExText(int modifiers) 返回描述扩展修饰键和鼠标按钮的String,例如“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 Class
在输入字符时,生成Key事件。有三种类型的键事件由整数常量表示。 这些关键事件如下
KEY_PRESSED
KEY_RELASED
KEY_TYPED
类声明
以下是java.awt.event.KeyEvent类的声明:
public class KeyEvent
extends InputEvent
字段 (Field)
以下是java.awt.InputEvent类的字段:
static char CHAR_UNDEFINED --KEY_PRESSED和KEY_RELEASED事件未映射到有效的Unicode字符,使用此字符作为keyChar值。
static int KEY_FIRST - 用于键事件的id范围中的第一个数字。
static int KEY_LAST - 用于键事件的id范围中的最后一个数字。
static int KEY_LOCATION_LEFT - 一个常量,指示按下或释放的键位于左键位置(此键有多个可能的位置)。
static int KEY_LOCATION_NUMPAD - 一个常量,指示键事件源自数字小键盘或与数字小键盘对应的虚拟键。
static int KEY_LOCATION_RIGHT - 一个常量,指示按下或释放的键位于右键位置(此键有多个可能的位置)。
static int KEY_LOCATION_STANDARD - 一个常量,表示按下或释放的键未被区分为键的左或右版本,并且不是源自数字键盘(或者不是源自与数字键盘对应的虚拟键) 。
static int KEY_LOCATION_UNKNOWN - 一个常量,指示keyLocation不确定或不相关。
static int KEY_PRESSED - “按下了键”事件。
static int KEY_RELEASED - “密钥释放”事件。
static int KEY_TYPED - “键入类型”事件。
static int VK_0 --VK_0到VK_9与ASCII'0'到'9'(0x30 - 0x39)相同 static int VK_1
static int VK_2
static int VK_3
static int VK_4
static int VK_5
static int VK_6
static int VK_7
static int VK_8
static int VK_9
static int VK_A --VK_A到VK_Z与ASCII'A'到'Z'(0x41 - 0x5A)相同
static int VK_ACCEPT Accept或Commit功能键的常量。
static int VK_ADD
static int VK_AGAIN
static int VK_ALL_CANDIDATES All Candidates功能键的常量。
static int VK_ALPHANUMERIC字母数字功能键的常量。
static int VK_ALT
static int VK_ALT_GRAPH AltGraph功能键的常量。
static int VK_AMPERSAND
static int VK_ASTERISK
static int VK_AT “@”键的常量。
static int VK_B
static int VK_BACK_QUOTE
static int VK_BACK_SLASH反斜杠键的常量,“\”
static int VK_BACK_SPACE
static int VK_BEGIN Begin键的常量。
static int VK_BRACELEFT
static int VK_BRACERIGHT
static int VK_C
static int VK_CANCEL
static int VK_CAPS_LOCK
static int VK_CIRCUMFLEX “^”键的常量。
static int VK_CLEAR
static int VK_CLOSE_BRACKET关闭括号键的常量,“]”
static int VK_CODE_INPUT代码输入功能键的常量。
static int VK_COLON “:”键的常量。
static int VK_COMMA逗号键的常量,“,”
static int VK_COMPOSE Compose函数键的常量。
static int VK_CONTEXT_MENU Microsoft Windows上下文菜单键的常量。
static int VK_CONTROL
static int VK_CONVERT - 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 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_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_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 Full-Width Characters功能键的常量。
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 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 - 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 Numpad 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
类构造函数
SN | 构造函数和描述 |
---|---|
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) |
类方法
SN | 方法和描述 |
---|---|
1 | char getKeyChar() 返回与此事件中的键关联的字符。 |
2 | int getKeyCode() 返回与此事件中的键关联的整数keyCode。 |
3 | int getKeyLocation() 返回发起此键事件的键的位置。 |
4 | static String getKeyModifiersText(int modifiers) 返回描述修饰键的String,例如“Shift”或“Ctrl + Shift”。 |
5 | static String getKeyText(int keyCode) 返回描述keyCode的String,例如“HOME”,“F1”或“A”。 |
6 | boolean isActionKey() 返回此事件中的键是否为“action”键。 |
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 Class
此事件表示组件中发生了鼠标操作。 此低级事件由鼠标事件和鼠标移动事件的组件对象生成。
按下鼠标按钮
鼠标按钮被释放
单击鼠标按钮(按下并释放)
鼠标光标进入组件几何体的未遮挡部分
鼠标光标退出组件几何体的未遮挡部分
移动鼠标
拖动鼠标
类声明
以下是java.awt.event.MouseEvent类的声明:
public class MouseEvent
extends InputEvent
字段 (Field)
以下是java.awt.event.MouseEvent类的字段:
static int BUTTON1指示鼠标按钮#1; 由getButton()使用
static int BUTTON2指示鼠标按钮#2; 由getButton()使用
static int BUTTON3指示鼠标按钮#3; 由getButton()使用
static int MOUSE_CLICKED - “鼠标单击”事件
static int MOUSE_DRAGGED - “鼠标拖动”事件
static int MOUSE_ENTERED - “鼠标已输入”事件
static int MOUSE_EXITED - “鼠标已退出”事件
static int MOUSE_FIRST - 用于鼠标事件的id范围中的第一个数字
static int MOUSE_LAST - 用于鼠标事件的id范围中的最后一个数字
static int MOUSE_MOVED - “鼠标移动”事件
static int MOUSE_PRESSED - “鼠标按下”事件
static int MOUSE_RELEASED - “鼠标释放”事件
static int MOUSE_WHEEL - “鼠标滚轮”事件
static int NOBUTTON - 不指示鼠标按钮; 由getButton()使用
static int VK_WINDOWS Microsoft Windows“Windows”键的常量。
类构造函数
SN | 构造函数和描述 |
---|---|
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对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | int getButton() 返回哪些鼠标按钮已更改状态(如果有)。 |
2 | int getClickCount() 返回与此事件关联的鼠标单击次数。 |
3 | Point getLocationOnScreen() 返回事件的绝对x,y位置。 |
4 | static String getMouseModifiersText(int modifiers) 返回一个String,描述在事件期间关闭的修改键和鼠标按钮,例如“Shift”或“Ctrl + Shift”。 |
5 | Point getPoint() 返回事件相对于源组件的x,y位置。 |
6 | int getX() 返回事件相对于源组件的水平x位置。 |
7 | int getXOnScreen() 返回事件的绝对水平x位置。 |
8 | int getY() 返回事件相对于源组件的垂直y位置。 |
9 | int getYOnScreen() 返回事件的绝对垂直y位置。 |
10 | boolean isPopupTrigger() Returns whether or not this mouse event is the popup menu trigger event for the platform. |
11 | String paramString() 返回标识此事件的参数字符串。 |
12 | void translatePoint(int x, int y) 通过添加指定的x(水平)和y(垂直)偏移将事件的坐标转换为新位置。 |
方法继承
该类继承以下类中的方法:
java.awt.event.InputEvent
java.awt.event.ComponentEvent
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT TextEvent Class
此类的对象表示文本事件。在文本字段或文本区域中输入字符时生成TextEvent。 TextEvent实例不包含当前在生成事件的文本组件中的字符,而是提供了其他方法来检索该信息。
类声明
以下是java.awt.event.TextEvent类的声明:
public class TextEvent
extends AWTEvent
字段 (Field)
以下是java.awt.event.TextEvent类的字段:
static int TEXT_FIRST - 用于文本事件的id范围中的第一个数字。
static int TEXT_LAST - 用于文本事件的id范围中的最后一个数字。
static int TEXT_VALUE_CHANGED事件id表示对象的文本已更改。
类构造函数
<0tr>SN | 构造函数和描述 |
---|---|
1 | TextEvent(Object source, int id) 构造一个TextEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | String paramString() 返回标识此文本事件的参数字符串。 |
方法继承
该类继承以下类中的方法:
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT WindowEvent Class
此类的对象表示窗口状态的更改。此低级事件由Window对象在打开,关闭,激活,取消激活,图标化或取消图标化时生成,或者当焦点转移到或转出时窗户。
类声明
以下是java.awt.event.WindowEvent类的声明:
public class WindowEvent
extends ComponentEvent
字段 (Field)
以下是java.awt.event.WindowEvent类的字段:
static int WINDOW_ACTIVATED - 窗口激活的事件类型。
static int WINDOW_CLOSED - 窗口关闭事件。
static int WINDOW_CLOSING - “窗口正在关闭”事件。
static int WINDOW_DEACTIVATED - 窗口已停用的事件类型。
static int WINDOW_DEICONIFIED - 窗口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>SN | 构造函数和描述 |
---|---|
1 | WindowEvent(Window source, int id) 构造一个WindowEvent对象。 |
2 | WindowEvent(Window source, int id, int oldState, int newState) 构造具有指定的上一个和新窗口状态的WindowEvent对象。 |
3 | WindowEvent(Window source, int id, Window opposite) 使用指定的相对Window构造一个WindowEvent对象。 |
4 | WindowEvent(Window source, int id, Window opposite, int oldState, int newState) 构造一个WindowEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | int getNewState() 对于WINDOW_STATE_CHANGED事件,返回窗口的新状态。 |
2 | int getOldState() 对于WINDOW_STATE_CHANGED事件,返回窗口的先前状态。 |
3 | Window getOppositeWindow() 返回此焦点或激活更改中涉及的另一个Window。 |
4 | Window getWindow() 返回事件的发起者。 |
5 | String paramString() 返回标识此事件的参数字符串。 |
方法继承
该类继承以下类中的方法:
java.awt.event.ComponentEvent
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT AdjustmentEvent Class
介绍 (Introduction)
Class AdjustmentEvent表示可调整对象发出的调整事件。
类声明
以下是java.awt.event.AdjustmentEvent类的声明:
public class AdjustmentEvent
extends AWTEvent
字段 (Field)
以下是java.awt.Component类的字段:
static int ADJUSTMENT_FIRST - 标记调整事件id范围的第一个整数id。
static int ADJUSTMENT_LAST - 标记调整事件id范围的最后一个整数id。
static int ADJUSTMENT_VALUE_CHANGED - 调整值已更改事件。
static int BLOCK_DECREMENT - 块减量调整类型。
static int BLOCK_INCREMENT - 块增量调整类型。
static int TRACK - 绝对跟踪调整类型。
static int UNIT_DECREMENT - 单位减量调整类型。
static int UNIT_INCREMENT - 单位增量调整类型。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | AdjustmentEvent(Adjustable source, int id, int type, int value) 使用指定的可调整源,事件类型,调整类型和值构造一个AdjustmentEvent对象。 |
2 | AdjustmentEvent(Adjustable source, int id, int type, int value, boolean isAdjusting) 使用指定的可调整源,事件类型,调整类型和值构造一个AdjustmentEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | Adjustable getAdjustable() 返回此事件源自的Adjustable对象。 |
2 | int getAdjustmentType() 返回导致值更改事件的调整类型。 |
3 | int getValue() 返回调整事件中的当前值。 |
4 | boolean getValueIsAdjusting() 如果这是多个调整事件之一,则返回true。 |
5 | String paramString() 返回表示此Event事件状态的字符串。 |
方法继承
此接口继承以下类中的方法:
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT ComponentEvent Class
介绍 (Introduction)
类ComponentEvent表示组件移动,更改大小或更改可见性
类声明
以下是java.awt.event.ComponentEvent类的声明:
public class ComponentEvent
extends AWTEvent
字段 (Field)
以下是java.awt.Component类的字段:
static int COMPONENT_FIRST - 用于组件事件的id范围中的第一个数字。
static int COMPONENT_HIDDEN事件表示组件呈现为不可见。
static int COMPONENT_LAST - 用于组件事件的id范围中的最后一个数字。
static int COMPONENT_MOVED - 此事件表示组件的位置已更改。
static int COMPONENT_RESIZED - 此事件表示组件的大小已更改。
static int COMPONENT_SHOWN - 此事件表示组件可见。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | ComponentEvent(Component source, int id) 构造一个ComponentEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | Component getComponent() 返回事件的发起者。 |
2 | String paramString() 返回标识此事件的参数字符串。 |
方法继承
此接口继承以下类中的方法:
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT ContainerEvent Class
介绍 (Introduction)
Class ContainerEvent表示容器的内容已更改,因为添加或删除了组件。
类声明
以下是java.awt.event.ContainerEvent类的声明:
public class ContainerEvent
extends ComponentEvent
字段 (Field)
以下是java.awt.Component类的字段:
static int COMPONENT_ADDED - 此事件表示已将组件添加到容器中。
static int COMPONENT_REMOVED - 此事件表示已从容器中删除组件。
static int CONTAINER_FIRST - 用于容器事件的id范围中的第一个数字。
static int CONTAINER_LAST - 用于容器事件的id范围中的最后一个数字。
类构造函数
类方法
SN | 构造函数和描述 |
---|---|
1 | ContainerEvent(Component source, int id, Component child) 构造一个ContainerEvent对象。 |
SN | 方法和描述 |
---|---|
1 | Component getChild() 返回受事件影响的组件。 |
2 | Container getContainer() 返回事件的发起者。 |
3 | String paramString() 返回标识此事件的参数字符串。 |
方法继承
该类继承以下类中的方法:
java.awt.ComponentEvent
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT MouseMotionEvent Class
介绍 (Introduction)
MouseMotionEvent接口指示组件中发生的鼠标操作。 拖动或移动鼠标时,组件对象会生成此低级事件。
类声明
以下是java.awt.event.MouseMotionEvent类的声明:
public class MouseMotionEvent
extends InputEvent
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
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 Class
介绍 (Introduction)
类PaintEvent用于确保将paint/update方法调用与从事件队列传递的其他事件一起序列化
类声明
以下是java.awt.event.PaintEvent类的声明:
public class PaintEvent
extends ComponentEvent
字段 (Field)
以下是java.awt.Component类的字段:
static int PAINT - 绘制事件类型。
static int PAINT_FIRST - 标记绘制事件id范围的第一个整数id。
static int PAINT_LAST - 标记绘制事件id范围的最后一个整数id。
static int UPDATE - 更新事件类型。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | PaintEvent(Component source, int id, Rectangle updateRect) 使用指定的源组件和类型构造PaintEvent对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | Rectangle getUpdateRect() 返回表示响应此事件需要重新绘制的区域的矩形。 |
2 | String paramString() 返回标识此事件的参数字符串。 |
3 | void setUpdateRect(Rectangle updateRect) 设置表示响应此事件需要重新绘制的区域的矩形。 |
方法继承
该类继承以下类中的方法:
java.awt.ComponentEvent
java.awt.AWTEvent
java.util.EventObject
java.lang.Object
AWT Event Listeners
Event侦听器表示负责处理事件的接口。 Java为我们提供了各种事件监听器类,但我们将讨论更频繁使用的那些。 事件侦听器方法的每个方法都有一个参数作为对象,它是EventObject类的子类。 例如,鼠标事件侦听器方法将接受MouseEvent的实例,其中MouseEvent派生自EventObject。
EventListner接口
它是每个侦听器接口必须扩展的标记接口。此类在java.util包中定义。
类声明
以下是java.util.EventListener接口的声明:
public interface EventListener
AWT事件监听器接口:
以下是常用事件侦听器的列表。
AWT ActionListener Interface
处理ActionEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addActionListener()方法注册该对象。 当动作事件发生时,将调用该对象的actionPerformed方法。
接口声明
以下是java.awt.event.ActionListener接口的声明:
public interface ActionListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void actionPerformed(ActionEvent e) 发生操作时调用。 |
方法继承
此接口从以下接口继承方法:
java.awt.EventListener
ActionListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT ComponentListener Interface
处理ComponentEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addComponentListener()方法注册该对象。 引发组件事件仅供参考。
接口声明
以下是java.awt.event.ComponentListener接口的声明:
public interface ComponentListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT ItemListener Interface
处理ItemEvent的类应该实现此接口。该类的对象必须使用组件注册。 可以使用addItemListener()方法注册该对象。 发生操作事件时,将调用该对象的itemStateChanged方法。
接口声明
以下是java.awt.event.ItemListener接口的声明:
public interface ItemListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void itemStateChanged(ItemEvent e) 在用户选择或取消选择项目时调用。 |
方法继承
此接口从以下接口继承方法:
java.awt.EventListener
ItemListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT KeyListener Interface
处理KeyEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addKeyListener()方法注册该对象。
接口声明
以下是java.awt.event.KeyListener接口的声明:
public interface KeyListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void keyPressed(KeyEvent e) 按下某个键时调用。 |
2 | void keyReleased(KeyEvent e) 释放密钥时调用。 |
3 | void keyTyped(KeyEvent e) 键入键时调用。 |
方法继承
此接口从以下接口继承方法:
java.awt.EventListener
KeyListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT MouseListener Interface
处理MouseEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addMouseListener()方法注册该对象。
接口声明
以下是java.awt.event.MouseListener接口的声明:
public interface MouseListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT TextListener Interface
处理TextEvent的类应该实现此接口。该类的对象必须使用组件注册。 可以使用addTextListener()方法注册该对象。
接口声明
以下是java.awt.event.TextListener接口的声明:
public interface TextListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void textValueChanged(TextEvent e) 在文本值发生更改时调用。 |
方法继承
此接口从以下接口继承方法:
java.awt.EventListener
TextListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT WindowListener Interface
处理WindowEvent的类应该实现此接口。该类的对象必须在组件中注册。 可以使用addWindowListener()方法注册该对象。
接口声明
以下是java.awt.event.WindowListener接口的声明:
public interface WindowListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void windowActivated(WindowEvent e) 将Window设置为活动Window时调用。 |
2 | void windowClosed(WindowEvent e) 由于在窗口上调用dispose而关闭窗口时调用。 |
3 | void windowClosing(WindowEvent e) 当用户尝试从窗口的系统菜单关闭窗口时调用。 |
4 | void windowDeactivated(WindowEvent e) 当Window不再是活动Window时调用。 |
5 | void windowDeiconified(WindowEvent e) 窗口从最小化状态更改为正常状态时调用。 |
6 | void windowIconified(WindowEvent e) 当窗口从正常状态更改为最小化状态时调用。 |
7 | void windowOpened(WindowEvent e) 第一次使窗口可见时调用。 |
方法继承
此接口从以下接口继承方法:
java.awt.EventListener
WindowListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 iowiki.");
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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT AdjustmentListener Interface
介绍 (Introduction)
AdjustmentListener接口用于接收调整事件。 处理调整事件的类需要实现此接口。
类声明
以下是java.awt.event.AdjustmentListener接口的声明:
public interface AdjustmentListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void adjustmentValueChanged(AdjustmentEvent e) 调整值的值发生变化时调用。 |
方法继承
该类继承以下接口的方法:
java.awt.event.EventListener
AdjustmentListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT ContainerListener Interface
介绍 (Introduction)
ContainerListener接口用于接收容器事件。 处理容器事件的类需要实现此接口。
类声明
以下是java.awt.event.ContainerListener接口的声明:
public interface ContainerListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void componentAdded(ContainerEvent e) 将组件添加到容器时调用。 |
2 | void componentRemoved(ContainerEvent e) 从容器中删除组件时调用。 |
方法继承
该类继承以下接口的方法:
java.awt.event.EventListener
AdjustmentListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT MouseMotionListener Interface
介绍 (Introduction)
MouseMotionListener接口用于接收组件上的鼠标移动事件。 处理鼠标运动事件的类需要实现此接口。
类声明
以下是java.awt.event.MouseMotionListener接口的声明:
public interface MouseMotionListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void mouseDragged(MouseEvent e) 在组件上按下鼠标按钮然后拖动时调用。 |
2 | void mouseMoved(MouseEvent e) 将鼠标光标移动到组件但未按下任何按钮时调用。 |
方法继承
该类继承以下接口的方法:
java.awt.event.EventListener
MouseMotionListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT FocusListener Interface
介绍 (Introduction)
FocusListener接口用于接收键盘焦点事件。 处理焦点事件的类需要实现此接口。
类声明
以下是java.awt.event.FocusListener接口的声明:
public interface FocusListener
extends EventListener
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void focusGained(FocusEvent e) 当组件获得键盘焦点时调用。 |
2 | void focusLost(FocusEvent e) 组件失去键盘焦点时调用。 |
方法继承
该类继承以下接口的方法:
java.awt.event.EventListener
FocusListener示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtListenerDemo.javapackage com.iowiki.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\iowiki\gui\AwtListenerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtListenerDemo
验证以下输出
AWT Event Adapters
适配器是用于接收各种事件的抽象类。 这些类中的方法是空的。 这些类作为创建侦听器对象的便利而存在。
AWT适配器:
以下是在AWT中监听GUI事件时常用适配器的列表。
AWT FocusAdapter Class
介绍 (Introduction)
FocusAdapter类是一个抽象(适配器)类,用于接收键盘焦点事件。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。
类声明
以下是java.awt.event.FocusAdapter类的声明:
public abstract class FocusAdapter
extends Object
implements FocusListener
类构造函数
SN | 构造函数和描述 |
---|---|
1 | FocusAdapter() |
类方法
SN | 方法和描述 |
---|---|
1 | void focusGained(FocusEvent e) 当组件获得键盘焦点时调用。 |
2 | focusLost(FocusEvent e) 组件失去键盘焦点时调用。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
FocusAdapter示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtAdapterDemo.javapackage com.iowiki.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\iowiki\gui\AwtAdapterDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtAdapterDemo
验证以下输出
AWT KeyAdapter Class
介绍 (Introduction)
KeyAdapter类是一个用于接收键盘事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。
类声明
以下是java.awt.event.KeyAdapter类的声明:
public abstract class KeyAdapter
extends Object
implements KeyListener
类构造函数
SN | 构造函数和描述 |
---|---|
1 | KeyAdapter() |
类方法
SN | 方法和描述 |
---|---|
1 | void keyPressed(KeyEvent e) 按下某个键时调用。 |
2 | void keyReleased(KeyEvent e) 释放密钥时调用。 |
3 | void keyTyped(KeyEvent e) 键入键时调用。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
KeyAdapter示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtAdapterDemo.javapackage com.iowiki.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\iowiki\gui\AwtAdapterDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtAdapterDemo
验证以下输出
AWT MouseAdapter Class
介绍 (Introduction)
MouseAdapter类是一个用于接收鼠标事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。
类声明
以下是java.awt.event.MouseAdapter类的声明:
public abstract class MouseAdapter
extends Object
implements MouseListener, MouseWheelListener, MouseMotionListener
类构造函数
SN | 构造函数和描述 |
---|---|
1 | MouseAdapter() |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtAdapterDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtAdapterDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtAdapterDemo
验证以下输出
AWT MouseMotionAdapter Class
介绍 (Introduction)
MouseMotionAdapter类是一个用于接收鼠标移动事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。
类声明
以下是java.awt.event.MouseMotionAdapter类的声明:
public abstract class MouseMotionAdapter
extends Object
implements MouseMotionListener
类构造函数
SN | 构造函数和描述 |
---|---|
1 | MouseMotionAdapter() |
类方法
SN | 方法和描述 |
---|---|
1 | void mouseDragged(MouseEvent e) 在组件上按下鼠标按钮然后拖动时调用。 |
2 | void mouseMoved(MouseEvent e) 将鼠标光标移动到组件但未按下任何按钮时调用。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
MouseMotionAdapter示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtAdapterDemo.javapackage com.iowiki.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 IoWiki AWT Tutorial.");
panel.add(msglabel);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AwtAdapterDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtAdapterDemo
验证以下输出
AWT WindowAdapter Class
介绍 (Introduction)
WindowAdapter类是一个用于接收窗口事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。
类声明
以下是java.awt.event.WindowAdapter类的声明:
public abstract class WindowAdapter
extends Object
implements WindowListener, WindowStateListener, WindowFocusListener
类构造函数
SN | 构造函数和描述 |
---|---|
1 | WindowAdapter() |
类方法
SN | 方法和描述 |
---|---|
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) 当Window设置为焦点窗口时调用,这意味着Window或其子组件之一将接收键盘事件。 |
7 | void windowIconified(WindowEvent e) 窗口图标化时调用。 |
8 | void windowLostFocus(WindowEvent e) 当Window不再是焦点窗口时调用,这意味着键盘事件将不再传递给Window或其任何子组件。 |
9 | void windowOpened(WindowEvent e) 打开窗口时调用。 |
10 | void windowStateChanged(WindowEvent e) 更改窗口状态时调用。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
WindowAdapter示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtAdapterDemo.javapackage com.iowiki.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 iowiki.");
msgLabel.setAlignment(Label.CENTER);
msgLabel.setSize(100,100);
aboutFrame.add(msgLabel);
aboutFrame.setVisible(true);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AwtAdapterDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtAdapterDemo
验证以下输出
AWT Layouts
介绍 (Introduction)
布局是指容器内部件的布置。 换句话说,我们可以说将组件放置在容器内的特定位置。 布局控件的任务由布局管理器自动完成。
布局管理器
布局管理器自动定位容器中的所有组件。 如果我们不使用布局管理器,那么组件也会由默认布局管理器定位。 可以手动布置控件,但由于以下两个原因,它变得非常困难。
处理容器内的大量控件非常繁琐。
当我们需要安排它们时,通常不会给出组件的宽度和高度信息。
Java为我们提供了各种布局管理器来定位控件。 大小,形状和排列等属性因布局管理器和其他布局管理器而异。 当applet或应用程序窗口的大小改变大小时,组件的形状和排列也会响应,即布局管理器适应appletviewer或应用程序窗口的尺寸。
布局管理器与每个Container对象相关联。 每个布局管理器都是实现LayoutManager接口的类的对象。
以下是定义布局管理器功能的接口和类。
AWT LayoutManager Interface
介绍 (Introduction)
界面LayoutManager用于为知道如何布置容器的类定义接口。
类声明
以下是java.awt.LayoutManager接口的声明:
public interface LayoutManager
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
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 Interface
介绍 (Introduction)
界面LayoutManger用于为知道如何基于布局约束对象布置Container的类定义接口。
类声明
以下是java.awt.LayoutManager2接口的声明:
public interface LayoutManger2
extends LayoutManager
接口方法 (Interface methods)
SN | 方法和描述 |
---|---|
1 | void addLayoutComponent(Component comp, Object constraints) 使用指定的约束对象将指定的组件添加到布局中。 |
2 | float getLayoutAlignmentX(Container target) 返回沿x轴的对齐方式。 |
3 | float getLayoutAlignmentY(Container target) 返回沿y轴的对齐方式。 |
4 | void invalidateLayout(Container target) 使布局无效,表明如果布局管理器缓存了信息,则应将其丢弃。 |
5 | Dimension maximumLayoutSize(Container target) 在给定组件包含的组件的情况下,计算指定容器的最大大小尺寸。 |
AWT BorderLayout Class
介绍 (Introduction)
BorderLayout类安排组件适合五个区域:东,西,北,南和中心。 每个区域只能包含一个组件,每个区域中的每个组件都由相应的常量NORTH,SOUTH,EAST,WEST和CENTER标识。
类声明
以下是java.awt.BorderLayout类的声明:
public class BorderLayout
extends Object
implements LayoutManager2, Serializable
字段 (Field)
以下是java.awt.BorderLayout类的字段:
static String AFTER_LAST_LINE - PAGE_END的同义词。
static String AFTER_LINE_ENDS - static String AFTER_LINE_ENDS同义词。
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 - 西部布局约束(容器的左侧)。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | BorderLayout() 构造一个新的边框布局,组件之间没有间隙。 |
2 | BorderLayout(int hgap, int vgap) 构造具有组件之间指定间隙的边框布局。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtLayoutDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtlayoutDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtlayoutDemo
验证以下输出
AWT CardLayout Class
介绍 (Introduction)
CardLayout类将容器中的每个组件排列为卡片。 一次只能看到一张卡片,而容器则充当一叠卡片。
类声明
以下是java.awt.CardLayout类的声明:
public class CardLayout
extends Object
implements LayoutManager2, Serializable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | CardLayout() 创建一个大小为零的新卡片布局。 |
2 | CardLayout(int hgap, int vgap) 创建具有指定水平和垂直间隙的新卡片布局。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtLayoutDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtlayoutDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtlayoutDemo
验证以下输出
AWT FlowLayout Class
介绍 (Introduction)
从左到右流程中的FlowLayout类组件。
类声明
以下是java.awt.FlowLayout类的声明:
public class FlowLayout
extends Object
implements LayoutManager, Serializable
字段 (Field)
以下是java.awt.BorderLayout类的字段:
static int CENTER - 此值指示每行组件应居中。
static int LEADING - 此值指示每行组件应对齐到容器方向的前沿,例如,从左到右方向向左。
static int LEFT - 此值指示每行组件应左对齐。
static int RIGHT - 此值指示每行组件应右对齐。
static int TRAILING - 此值指示应将每行组件对齐到容器方向的后缘,例如,从左到右方向向右。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | FlowLayout() 构造一个具有居中对齐和默认5单位水平和垂直间隙的新FlowLayout。 |
2 | FlowLayout(int align) 构造一个具有指定对齐和默认5单位水平和垂直间隙的新FlowLayout。 |
3 | FlowLayout(int align, int hgap, int vgap) 创建一个新的流布局管理器,其中包含指示的对齐方式以及指示的水平和垂直间隙。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtLayoutDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtlayoutDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtlayoutDemo
验证以下输出
AWT GridLayout Class
介绍 (Introduction)
GridLayout类在矩形网格中排列组件。
类声明
以下是java.awt.GridLayout类的声明:
public class GridLayout
extends Object
implements LayoutManager, Serializable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | GridLayout() 在单行中创建一个网格布局,每个组件的默认值为一列。 |
2 | GridLayout(int rows, int cols) 创建具有指定行数和列数的网格布局。 |
3 | GridLayout(int rows, int cols, int hgap, int vgap) 创建具有指定行数和列数的网格布局。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AwtLayoutDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtlayoutDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtlayoutDemo
验证以下输出
AWT GridBagLayout Class
介绍 (Introduction)
GridBagLayout类以水平和垂直方式排列组件。
类声明
以下是java.awt.GridBagLayout类的声明:
public class GridBagLayout
extends Object
implements LayoutManager2, Serializable
字段 (Field)
以下是java.awt.BorderLayout类的字段:
double[] columnWeights - 此字段包含列权重的覆盖。
int[] columnWidths - 此字段包含列最小宽度的覆盖。
protected Hashtable comptable - 此哈希表维护组件与其gridbag约束之间的关联。
protected GridBagConstraints defaultConstraints - 此字段包含一个包含默认值的gridbag约束实例,因此如果某个组件没有与之关联的gridbag约束,则将为该组件分配defaultConstraints的副本。
protected java.awt.GridBagLayoutInfo layoutInfo - 此字段包含protected java.awt.GridBagLayoutInfo layoutInfo的布局信息。
protected static int MAXGRIDSIZE - 网格包布局可以布置的最大网格位置数(水平和垂直)。
protected static int MINSIZE - 网格包布局可以布局的最小网格。
protected static int PREFERREDSIZE - 网格包布局可以布局的首选网格大小。
int[] rowHeights - 此字段包含行最小高度的覆盖。
double[] rowWeights - 此字段包含行权重的覆盖。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | GridBagLayout() 创建网格包布局管理器。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addLayoutComponent(Component comp, Object constraints) 使用指定的约束对象将指定的组件添加到布局中。 |
2 | void addLayoutComponent(String name, Component comp) 将具有指定名称的指定组件添加到布局中。 |
3 | protected void adjustForGravity(GridBagConstraints constraints, Rectangle r) 根据约束几何体和打击垫,将x,y,width和height字段调整为正确的值。 |
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()中的信息计算出master的最小大小。 |
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 》 iowiki 》 gui 》
AwtLayoutDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtlayoutDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtlayoutDemo
验证以下输出
AWT Containers
容器是AWT GUI组件的组成部分。 容器提供可以定位组件的空间。 AWT中的Container本身就是一个组件,它增加了向自身添加组件的功能。 以下是值得考虑的重点。
Container的子类称为Containter。 例如Panel,Frame和Window。
容器只能将Component添加到自身。
每个容器中都存在一个默认布局,可以使用setLayout方法覆盖它。
AWT Container Class
介绍 (Introduction)
Container类是AWT容器的超类。 Container对象可以包含其他AWT组件。
类声明
以下是java.awt.Container类的声明:
public class Container
extends Component
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Container() 这将创建一个新的Container。 |
类方法
SN | 方法和描述 |
---|---|
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连接到本机屏幕资源,可以显示此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显式定义了给定焦点遍历操作的焦点遍历键Set。 |
13 | int countComponents() 已过时。 从JDK version 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() 确定此容器的insets,它指示容器边框的大小。 |
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 version 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 version 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 version 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) 从此容器中删除由index指定的组件。 |
58 | void removeAll() 从此容器中删除所有组件。 |
59 | void removeContainerListener(ContainerListener l) 删除指定的容器侦听器,以便它不再从此容器接收容器事件。 |
60 | void removeNotify() 通过删除与其本机屏幕资源的连接,使此Container不可显示。 |
61 | void setComponentZOrder(Component comp, int index) 将指定的组件移动到容器中指定的z-order索引。 |
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 Class
介绍 (Introduction)
Panel类是最简单的容器类。 它提供了一个空间,应用程序可以在其中附加任何其他组件,包括其他面板。 它使用FlowLayout作为默认布局管理器。
类声明
以下是java.awt.Panel类的声明:
public class Panel
extends Container
implements Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Panel() 使用默认布局管理器创建新面板。 |
2 | Panel(LayoutManager layout) 使用指定的布局管理器创建新面板。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 创建Panel的同行。 |
2 | AccessibleContext getAccessibleContext() 获取与此Panel关联的AccessibleContext。 |
方法继承
该类继承以下类中的方法:
java.awt.Container
java.awt.Component
java.lang.Object
面板示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtContainerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtContainerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtContainerDemo
验证以下输出
AWT Frame Class
介绍 (Introduction)
Frame类是一个带有边框和标题的顶级窗口。 它使用BorderLayout作为默认布局管理器。
类声明
以下是java.awt.Frame类的声明:
public class Frame
extends Window
implements MenuContainer
字段 (Field)
以下是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取代。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Frame() 构造一个最初不可见的Frame新实例。 |
2 | Frame(GraphicsConfiguration gc) 使用指定的GraphicsConfiguration构造一个新的,最初不可见的Frame。 |
3 | Frame(String title) 构造一个具有指定标题的新的,最初不可见的Frame对象。 |
4 | Frame(String title, GraphicsConfiguration gc) 构造一个具有指定标题和GraphicsConfiguration的新的,最初不可见的Frame对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 通过将此框架连接到本机屏幕资源,可以显示此框架。 |
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
框架示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtContainerDemo.javapackage com.iowiki.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 IoWiki 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\iowiki\gui\AwtContainerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtContainerDemo
验证以下输出
AWT Window Class
介绍 (Introduction)
类Window是一个顶级窗口,没有边框,没有菜单栏。 它使用BorderLayout作为默认布局管理器。
类声明
以下是java.awt.Window类的声明:
public class Window
extends Container
implements Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Window(Frame owner) 构造一个新的,最初不可见的窗口,并将指定的Frame作为其所有者。 |
2 | Window(Window owner) 构造一个新的,最初不可见的窗口,并将指定的Window作为其所有者。 |
3 | Window(Window owner, GraphicsConfiguration gc) 使用指定的所有者Window和屏幕设备的GraphicsConfiguration构造一个新的,最初不可见的窗口。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addNotify() 通过创建与其本机屏幕资源的连接,使此窗口可显示。 |
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() 如果它满足isFocusableWindow中列出的其他要求,则返回此Window是否可以成为焦点窗口。 |
15 | Container getFocusCycleRootAncestor() 始终返回null,因为Windows没有祖先; 它们代表组件层次结构的顶部。 |
16 | Component getFocusOwner() 如果此窗口被聚焦,则返回此窗口的子Component,该窗口具有焦点; 否则返回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() 返回此窗口聚焦时将接收焦点的此窗口的子Component。 |
25 | Window[] getOwnedWindows() 返回一个包含此窗口当前拥有的所有窗口的数组。 |
26 | Window getOwner() 返回此窗口的所有者。 |
27 | static Window[] getOwnerlessWindows() 返回此应用程序创建的所有Windows的数组,该数组没有所有者。 |
28 | Toolkit getToolkit() 返回此框架的工具包。 |
29 | String getWarningString() 获取此窗口显示的警告字符串。 |
30 | WindowFocusListener[] getWindowFocusListeners() 返回在此窗口中注册的所有窗口焦点侦听器的数组。 |
31 | WindowListener[] getWindowListeners() 返回在此窗口中注册的所有窗口侦听器的数组。 |
32 | static Window[] getWindows() 返回由此应用程序创建的所有Windows(包括所有Windows和无主机)的数组。 |
33 | WindowStateListener[] getWindowStateListeners() 返回在此窗口中注册的所有窗口状态侦听器的数组。 |
34 | void hide() 已过时。 从JDK 1.5版开始,由setVisible(boolean)取代。 |
35 | boolean isActive() 返回此Window是否处于活动状态。 |
36 | boolean isAlwaysOnTop() 返回此窗口是否为始终在顶部的窗口。 |
37 | boolean isAlwaysOnTopSupported() 返回此窗口是否支持always-on-top模式。 |
38 | boolean isFocusableWindow() 返回此Window是否可以成为焦点窗口,即此Window或其任何子组件是否可以成为焦点所有者。 |
39 | boolean isFocusCycleRoot() 始终返回true,因为所有Windows必须是焦点遍历循环的根。 |
40 | boolean isFocused() 返回此Window是否已聚焦。 |
41 | boolean isLocationByPlatform() 如果此窗口在下一次显示此窗口时将显示在本机窗口系统的默认位置,则返回true。 |
42 | boolean isShowing() 检查此窗口是否显示在屏幕上。 |
43 | void pack() 使此窗口的大小适合其子组件的首选大小和布局。 |
44 | void paint(Graphics g) 涂抹容器。 |
45 | boolean postEvent(Event e) 已过时。 从JDK版本1.1替换为dispatchEvent(AWTEvent)。 |
46 | protected void processEvent(AWTEvent e) 处理此窗口上的事件。 |
47 | protected void processWindowEvent(WindowEvent e) 通过将窗口事件分派给任何已注册的WindowListener对象来处理此窗口上发生的窗口事件。 |
48 | protected void processWindowFocusEvent(WindowEvent e) 通过将窗口焦点事件分派给任何已注册的WindowFocusListener对象来处理此窗口上发生的窗口焦点事件。 |
49 | protected void processWindowStateEvent(WindowEvent e) 通过将窗口状态事件分派给任何已注册的WindowStateListener对象来处理此窗口上发生的窗口状态事件。 |
50 | void removeNotify() 通过删除与其本机屏幕资源的连接,使此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 version 1.1开始,由setBounds(int,int,int,int)取代。 |
55 | void setAlwaysOnTop(boolean alwaysOnTop) 设置此窗口是否应始终位于其他窗口之上。 |
56 | void setBounds(int x, int y, int width, int height) 移动并调整此组件的大小。 |
57 | void setBounds(Rectangle r) 移动此组件并调整其大小以符合新的边界矩形r。 |
58 | void setCursor(Cursor cursor) 将光标图像设置为指定的光标。 |
59 | void setFocusableWindowState(boolean focusableWindowState) 设置如果此窗口满足isFocusableWindow中列出的其他要求,是否可以成为焦点窗口。 |
60 | void setFocusCycleRoot(boolean focusCycleRoot) 什么都不做因为Windows必须始终是焦点遍历循环的根源。 |
61 | void setIconImage(Image image) 设置要显示为此窗口图标的图像。 |
62 | void setIconImages(List《? extends Image》 icons) 设置要显示的图像序列作为此窗口的图标。 |
63 | void setLocationByPlatform(boolean locationByPlatform) 设置此窗口是否应显示在本机窗口系统的默认位置,或者在下次使窗口可见时显示在当前位置(由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) 调整此组件的大小,使其具有宽度宽度和高度。 |
69 | void setVisible(boolean b) 根据参数b的值显示或隐藏此窗口。 |
70 | void show() 已过时。 从JDK 1.5版开始,由setVisible(boolean)取代。 |
71 | void toBack() 如果此窗口可见,则将此窗口发送到后面,如果它是聚焦或活动窗口,则可能导致它失去焦点或激活。 |
72 | void toFront() 如果此窗口可见,则将此窗口置于前面,并使其成为焦点窗口。 |
方法继承
该类继承以下类中的方法:
java.awt.Window
java.awt.Container
java.awt.Component
java.lang.Object
窗口示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AwtContainerDemo.javapackage com.iowiki.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 IoWiki 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 IoWiki 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\iowiki\gui\AwtContainerDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtContainerDemo
验证以下输出
AWT Menu Classes
我们知道每个顶级窗口都有一个与之关联的菜单栏。 此菜单栏包含最终用户可用的各种菜单选项。 此外,每个选项都包含称为下拉菜单的选项列表。 Menu和MenuItem控件是MenuComponent类的子类。
菜单Hiearchy
AWT MenuComponent Class
介绍 (Introduction)
MenuComponent是一个抽象类,是所有与菜单相关的组件的超类。
类声明
以下是java.awt.MenuComponent类的声明:
public abstract class MenuComponent
extends Object
implements Serializable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | MenuComponent() 创建一个MenuComponent。 |
类方法
void dispatchEvent(AWTEvent e)SN | 方法和描述 |
---|---|
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 version 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 Class
介绍 (Introduction)
MenuBar类提供绑定到框架的菜单栏,并且是特定于平台的。
类声明
以下是java.awt.MenuBar类的声明:
public class MenuBar
extends MenuComponent
implements MenuContainer, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | MenuBar() 创建一个新的菜单栏。 |
类方法
SN | 方法和描述 |
---|---|
1 | void dispatchEvent(AWTEvent e) |
2 | Menu add(Menu m) 将指定的菜单添加到菜单栏。 |
3 | void addNotify() 创建菜单栏的同行。 |
4 | int countMenus() 已过时。 从JDK version 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 》 iowiki 》 gui 》
AWTMenuDemo.javapackage com.iowiki.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\iowiki\gui\AWTMenuDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTMenuDemo
验证以下输出
AWT MenuItem Class
介绍 (Introduction)
MenuBar类表示菜单中的实际项目。 菜单中的所有项都应来自MenuItem类或其子类之一。 默认情况下,它包含一个简单的标签菜单项。
类声明
以下是java.awt.MenuItem类的声明:
public class MenuItem
extends MenuComponent
implements Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | MenuItem() 构造一个带有空标签且没有键盘快捷键的新MenuItem。 |
2 | MenuItem(String label) 构造一个具有指定标签且没有键盘快捷键的新MenuItem。 |
3 | MenuItem(String label, MenuShortcut s) 使用关联的键盘快捷方式创建菜单项。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addActionListener(ActionListener l) 添加指定的动作侦听器以从此菜单项接收动作事件。 |
2 | void addNotify() 创建菜单项的同位体。 |
3 | void deleteShortcut() 删除与此菜单项关联的任何MenuShortcut对象。 |
4 | void disable() 已过时。 从JDK version 1.1开始,由setEnabled(boolean)取代。 |
5 | protected void disableEvents(long eventsToDisable) 对于由指定的事件掩码参数定义的事件,禁用事件传递到此菜单项。 |
6 | void enable() 已过时。 从JDK version 1.1开始,由setEnabled(boolean)取代。 |
7 | void enable(boolean b) 已过时。 从JDK version 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 》 iowiki 》 gui 》
AWTMenuDemo.javapackage com.iowiki.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\iowiki\gui\AWTMenuDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTMenuDemo
验证以下输出。 (单击“文件”菜单。选择任何菜单项。)
AWT Menu Class
介绍 (Introduction)
Menu类表示从菜单栏部署的下拉菜单组件。
类声明
以下是java.awt.Menu类的声明:
public class Menu
extends MenuItem
implements MenuContainer, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Menu() 构造一个带有空标签的新菜单。 |
2 | Menu(String label) 构造具有指定标签的新菜单。 |
3 | Menu(String label, boolean tearOff) 构造一个带有指定标签的新菜单,指示菜单是否可以撕掉。 |
类方法
SN | 方法和描述 |
---|---|
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
菜单示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTMenuDemo.javapackage com.iowiki.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\iowiki\gui\AWTMenuDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTMenuDemo
验证以下输出。 (单击“文件”菜单。)
AWT CheckboxMenuItem Class
介绍 (Introduction)
CheckboxMenuItem类表示一个复选框,可以包含在菜单中。 选择菜单中的复选框可将控件的状态从on更改为off或从off更改为on 。
类声明
以下是java.awt.CheckboxMenuItem类的声明:
public class CheckboxMenuItem
extends MenuItem
implements ItemSelectable, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | CheckboxMenuItem() 创建一个带有空标签的复选框菜单项。 |
2 | CheckboxMenuItem(String label) 创建具有指定标签的复选框菜单项。 |
3 | CheckboxMenuItem(String label, boolean state) 创建具有指定标签和状态的复选框菜单项。 |
类方法
SN | 方法和描述 |
---|---|
1 | void addItemListener(ItemListener l) 添加指定的项侦听器以从此复选框菜单项接收项事件。 |
2 | void addNotify() 创建复选框项的对等项。 |
3 | AccessibleContext getAccessibleContext() 获取与此CheckboxMenuItem关联的AccessibleContext。 |
4 | ItemListener[] getItemListeners() 返回在此复选框menuitem上注册的所有项侦听器的数组。 |
5 | 《T extends EventListener》 T[] getListeners(Class《T》 listenerType) 返回当前在此CheckboxMenuItem上注册为FooListeners的所有对象的数组。 |
6 | Object[] getSelectedObjects() 返回包含复选框菜单项标签的数组(长度为1),如果未选中该复选框,则返回null。 |
7 | boolean getState() 确定此复选框菜单项的状态是“开”还是“关”。 |
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 》 iowiki 》 gui 》
AWTMenuDemo.javapackage com.iowiki.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\iowiki\gui\AWTMenuDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTMenuDemo
验证以下输出。 (单击“文件”菜单。取消选择“显示关于”菜单项。)
AWT PopupMenu Class
介绍 (Introduction)
弹出菜单表示一个菜单,可以在组件内的指定位置动态弹出。
类声明
以下是java.awt.PopupMenu类的声明:
public class CheckboxMenuItem
extends MenuItem
implements ItemSelectable, Accessible
类构造函数
SN | 构造函数和描述 |
---|---|
1 | PopupMenu() 创建一个空名称的新弹出菜单。 |
2 | PopupMenu(String label) 创建具有指定名称的新弹出菜单。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AWTMenuDemo.javapackage com.iowiki.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\iowiki\gui\AWTMenuDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTMenuDemo
验证以下输出。 (单击屏幕中间的。)
AWT Graphics Classes
图形控件允许应用程序绘制到组件或图像上。
AWT Graphics Class
介绍 (Introduction)
Graphics类是所有图形上下文的抽象超类,它允许应用程序绘制到可以在各种设备上实现的组件,或者也可以在屏幕外图像上绘制。
Graphics对象封装了Java支持的基本呈现操作所需的所有状态信息。 状态信息包括以下属性。
要绘制的Component对象。
渲染和裁剪坐标的平移原点。
当前剪辑。
目前的颜色。
当前的字体。
当前逻辑像素操作功能。
当前的XOR交替颜色
类声明
以下是java.awt.Graphics类的声明:
public abstract class Graphics
extends Object
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Graphics() () 构造一个新的Graphics对象。 |
类方法
SN | 方法和描述 |
---|---|
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) 绘制指定矩形的三维突出显示轮廓。 |
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) 绘制一个用当前颜色填充的三维高亮矩形。 |
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
图形示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 150);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Graphics2D Class
介绍 (Introduction)
Graphics2D类扩展了Graphics类,以提供对几何,坐标转换,颜色管理和文本布局的更复杂控制。
类声明
以下是java.awt.Graphics2D类的声明:
public abstract class Graphics2D
extends Graphics
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Graphics2D() 构造一个新的Graphics2D对象。 |
类方法
SN | 方法和描述 |
---|---|
1 | abstract void addRenderingHints(Map《?,?》 hints) 设置渲染算法的任意数量的首选项的值。 |
2 | abstract void clip(Shape s) 将当前Clip与指定Shape的内部相交,并将Clip设置为生成的交集。 |
3 | abstract void draw(Shape s) 使用当前Graphics2D上下文的设置描绘Shape的轮廓。 |
4 | void draw3DRect(int x, int y, int width, int height, boolean raised) 绘制指定矩形的三维突出显示轮廓。 |
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) 绘制一个用当前颜色填充的三维高亮矩形。 |
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变换与缩放变换连接后续渲染根据相对于先前缩放的指定缩放因子来调整大小。 |
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上下文的描边。 |
35 | abstract void setTransform(AffineTransform Tx) 覆盖Graphics2D上下文中的Transform。 |
36 | abstract void shear(double shx, double shy) 使用剪切变换连接当前的Graphics2D Transform。 |
37 | abstract void transform(AffineTransform Tx) 根据rulelast-specified-first-applied,使用此Graphics2D中的Transform组合AffineTransform对象。 |
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 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Arc2D Class
介绍 (Introduction)
Arc2D类是存储由框架矩形,起始角度,角度范围(弧的长度)和闭合类型(OPEN,CHORD或PIE)定义的2D弧的所有对象的超类。
类声明
以下是java.awt.Arc2D类的声明:
public abstract class Arc2D
extends RectangularShape
字段 (Field)
以下是java.awt.geom.Arc2D类的字段:
static int CHORD - 通过从弧段的开头到弧段的末尾绘制直线段来关闭弧的闭合类型。
static int OPEN - 开放弧的闭合类型,没有连接弧段两端的路径段。
static int PIE - 通过从弧段的起点到整个椭圆的中心以及从该点到弧段的末端绘制直线段来关闭弧的闭合类型。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Arc2D(int type) 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
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) 将此弧的角度范围设置为指定的double值。 |
17 | void setAngles(double x1, double y1, double x2, double y2) 使用两组坐标设置此弧的起始角度和角度范围。 |
18 | void setAngles(Point2D p1, Point2D p2) 使用两个点设置此弧的起始角度和角度范围。 |
19 | abstract void setAngleStart(double angSt) 将此弧的起始角度设置为指定的double值。 |
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) 将此弧的位置,大小,角度范围和闭合类型设置为指定的double值。 |
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 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("Arc2D.PIE", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AwtGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtGraphicsDemo
验证以下输出
AWT CubicCurve2D Class
介绍 (Introduction)
CubicCurve2D类在(x,y)坐标空间中声明了三次参数曲线段。
类声明
以下是java.awt.geom.CubicCurve2D类的声明:
public abstract class CubicCurve2D
extends Object
implements Shape, Cloneable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected CubicCurve2D() 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
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() 以double精度返回第一个控制点的X坐标。 |
10 | abstract double getCtrlX2() 以double精度返回第二个控制点的X坐标。 |
11 | abstract double getCtrlY1() 以double精度返回第一个控制点的Y坐标。 |
12 | abstract double getCtrlY2() 以double精度返回第二个控制点的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() 以double精度返回起始点的X坐标。 |
24 | abstract double getX2() 以double精度返回结束点的X坐标。 |
25 | abstract double getY1() 以double精度返回起始点的Y坐标。 |
26 | abstract double getY2() 以double精度返回结束点的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) 细分此三次曲线并将得到的两条细分曲线存储到左右曲线参数中。 |
37 | static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right) 细分src参数指定的三次曲线,并将得到的两条细分曲线存储到左右曲线参数中。 |
38 | static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff) 将索引srcoff到(srcoff + 7)中存储在src数组中的坐标指定的三次曲线细分,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
CubicCurve2D示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("CubicCurve2D.Curve", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Ellipse2D Class
介绍 (Introduction)
Ellipse2D类声明由框架矩形定义的椭圆。
类声明
以下是java.awt.geom.Ellipse2D类的声明:
public abstract class Ellipse2D
extends RectangularShape
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Ellipse2D() 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("Ellipse2D.Oval", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Rectangle2D Class
介绍 (Introduction)
Rectangle2D类声明由位置(x,y)和尺寸(wxh)定义的矩形。
类声明
以下是java.awt.geom.Rectangle2D类的声明:
public abstract class Rectangle2D
extends RectangularShape
字段 (Field)
以下是java.awt.geom.Arc2D类的字段:
static int OUT_BOTTOM - 指示某个点位于此Rectangle2D下方的位掩码。
static int OUT_LEFT - 指示某个点位于此Rectangle2D左侧的位掩码。
static int OUT_RIGHT - 指示某个点位于此Rectangle2D右侧的位掩码。
static int OUT_TOP - 指示某个点位于此Rectangle2D上方的位掩码。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Rectangle2D() 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
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的位置和大小设置为指定的double值。 |
21 | void setRect(Rectangle2D r) 将此Rectangle2D设置为与指定的Rectangle2D相同。 |
22 | static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest) 联合一对源Rectangle2D对象,并将结果放入指定的目标Rectangle2D对象。 |
方法继承
该类继承以下类中的方法:
java.awt.geom.RectangularShape
java.lang.Object
Ellipse2D示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("Rectangle2D.Rectangle", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT QuadCurve2D Class
介绍 (Introduction)
QuadCurve2D类表示(x,y)坐标空间中的二次参数曲线段。
类声明
以下是java.awt.geom.QuadCurve2D类的声明:
public abstract class QuadCurve2D
extends Object
implements Shape, Cloneable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected QuadCurve2D() () 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
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() 以double精度返回控制点的X坐标。 |
9 | abstract double getCtrlY() 以double精度返回控制点的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() 以double精度返回结束点的X坐标。 |
22 | abstract double getY1() 以double精度返回起始点的Y坐标。 |
23 | abstract double getY2() 以double精度返回结束点的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) 将索引srcoff到srcoff + 5中存储在src数组中的坐标指定的二次曲线细分,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。 |
34 | void subdivide(QuadCurve2D left, QuadCurve2D right) 细分此QuadCurve2D并将得到的两条细分曲线存储到左右曲线参数中。 |
35 | static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) 细分src参数指定的二次曲线,并将得到的两条细分曲线存储到左右曲线参数中。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
QuadCurve2D示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemopackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("QuadCurve2D.Curve", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Line2D Class
介绍 (Introduction)
Line2D类在(x,y)坐标空间中声明线段。
类声明
以下是java.awt.geom.Line2D类的声明:
public abstract class Line2D
extends Object
implements Shape, Cloneable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Line2D() () 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
1 | Object clone() 创建与此对象相同的类的新对象。 |
2 | boolean contains(double x, double y) 测试指定的坐标是否在此Line2D的边界内。 |
3 | boolean contains(double x, double y, double w, double h) 测试此Line2D的内部是否完全包含指定的直角坐标集。 |
4 | boolean contains(Point2D p) 测试给定的Point2D是否在此Line2D的边界内。 |
5 | boolean contains(Rectangle2D r) 测试此Line2D的内部是否完全包含指定的Rectangle2D。 |
6 | Rectangle getBounds() 返回完全包含Shape的整数Rectangle。 |
7 | abstract Point2D getP1() 返回此Line2D的起始Point2D。 |
8 | abstract Point2D getP2() 返回此Line2D的结束Point2D。 |
9 | PathIterator getPathIterator(AffineTransform at) 返回定义此Line2D边界的迭代对象。 |
10 | PathIterator getPathIterator(AffineTransform at, double flatness) 返回一个迭代对象,用于定义此展平Line2D的边界。 |
11 | abstract double getX1() 以double精度返回起始点的X坐标。 |
12 | abstract double getX2() 以double精度返回结束点的X坐标。 |
13 | abstract double getY1() 以double精度返回起始点的Y坐标。 |
14 | abstract double getY2() 以double精度返回结束点的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 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.drawString("Line2D.Line", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Font Class
介绍 (Introduction)
Font类声明了用于以可见方式呈现文本的字体。
类声明
以下是java.awt.Font类的声明:
public class Font
extends Object
implements Serializable
字段 (Field)
以下是java.awt.geom.Arc2D类的字段:
static int BOLD - 粗体样式常量。
static int CENTER_BASELINE - 布局文本时表意脚本(如中文,日文和韩文)中使用的基线。
static String DIALOG - 逻辑字体“Dialog”的规范系列名称的字符串常量。
static String DIALOG_INPUT - 逻辑字体“DialogInput”的规范系列名称的字符串常量。
static int HANGING_BASELINE - 在布局文本时Devanigiri和类似脚本中使用的基线。
static int ITALIC - 斜体样式常量。
static int LAYOUT_LEFT_TO_RIGHT - static int LAYOUT_LEFT_TO_RIGHT的标志,指示由Bidi分析确定的文本是从左到右。
static int LAYOUT_NO_LIMIT_CONTEXT - layoutGlyphVector的标志,指示不应检查指定限制之后的char数组中的文本。
static int LAYOUT_NO_START_CONTEXT - layoutGlyphVector的标志,指示不应检查指示的启动之前的char数组中的文本。
static int LAYOUT_RIGHT_TO_LEFT - static int LAYOUT_RIGHT_TO_LEFT的标志,指示由Bidi分析确定的文本是从右到左。
static String MONOSPACED - 逻辑字体“Monospaced”的规范系列名称的String常量。
protected String name - 传递给构造函数的此Font的逻辑名称。
static int PLAIN - 普通样式常量。
protected float pointSize - protected float pointSize中此Font的磅值。
static int ROMAN_BASELINE - 布局文本时大多数罗马脚本中使用的基线。
static String SANS_SERIF - 逻辑字体“SansSerif”的规范系列名称的String常量。
static String SERIF - 逻辑字体“Serif”的规范系列名称的String常量。
protected int size - 此Font的磅值,舍入为整数。
protected int style - 传递给构造函数的Font的样式。
static int TRUETYPE_FONT - 标识static int TRUETYPE_FONT类型的字体资源。
static int TYPE1_FONT - 标识TYPE1类型的字体资源。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected Font() () 从指定的字体创建一个新的Font。 |
2 | Font(Map《? extends AttributedCharacterIterator.Attribute,?》 attributes) 从指定的字体创建一个新的Font。 |
3 | Font(String name, int style, int size) 从指定的字体创建一个新的Font。 |
类方法
SN | 方法和描述 |
---|---|
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是否可以显示iter指定的文本,从start开始到limit。 |
5 | int canDisplayUpTo(String str) 指示此Font是否可以显示指定的String。 |
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) 返回使用指定的String和FontRenderContext创建的LineMetrics对象。 |
35 | LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc) 返回使用指定参数创建的LineMetrics对象。 |
36 | Rectangle2D getMaxCharBounds(FontRenderContext frc) 返回具有指定FontRenderContext中定义的最大边界的字符的边界。 |
37 | int getMissingGlyphCode() 返回当此Font没有指定unicode代码点的字形时使用的glyphCode。 |
38 | String getName() 返回此Font的逻辑名称。 |
39 | int getNumGlyphs() 返回此Font中的字形数。 |
40 | java.awt.peer.FontPeer getPeer() 已过时。 字体渲染现在与平台无关。 |
41 | String getPSName() 返回此Font的postscript名称。 |
42 | int getSize() 返回此Font的磅值,舍入为整数。 |
43 | float getSize2D() 以float值返回此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中指定String的逻辑边界。 |
47 | Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc) 返回指定FontRenderContext中指定String的逻辑边界。 |
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属性外,此Font对象是否具有影响其大小的变换。 |
57 | GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags) 返回一个新的GlyphVector对象,如果可能,执行文本的完整布局。 |
58 | String toString() 将此Font对象转换为String表示形式。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
字体示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
Font italicFont = new Font("Serif", Font.ITALIC, 24);
g2.setFont(italicFont);
g2.drawString("Welcome to IoWiki", 50, 120);
Font boldFont = new Font("Serif", Font.BOLD, 24);
g2.setFont(boldFont);
g2.drawString("Welcome to IoWiki", 50, 170);
Font boldItalicFont = new Font("Serif", Font.BOLD+Font.ITALIC, 24);
g2.setFont(boldItalicFont);
g2.drawString("Welcome to IoWiki", 50, 220);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT Color Class
介绍 (Introduction)
Color类表示默认sRGB颜色空间中的颜色或ColorSpace标识的任意颜色空间中的颜色。
类声明
以下是java.awt.Color类的声明:
public class Color
extends Object
implements Paint, Serializable
字段 (Field)
以下是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 - 颜色为黄色。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | Color(ColorSpace cspace, float[] components, float alpha) 使用float数组中指定的颜色分量和指定的alpha创建指定ColorSpace中的颜色。 |
2 | Color(float r, float g, float b) 使用指定的红色,绿色和蓝色值(0.0 - 1.0)创建不透明的sRGB颜色。 |
3 | Color(float r, float g, float b, float a) 使用指定的红色,绿色,蓝色和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) 使用指定的红色,绿色,蓝色和alpha值(范围为0 - 255)创建sRGB颜色。 |
类方法
SN | 方法和描述 |
---|---|
1 | Color brighter() 创建一个新Color,它是此Color的更亮版本。 |
2 | PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints) 创建并返回用于生成纯色图案的PaintContext。 |
3 | Color darker() 创建一个新颜色,该颜色是此颜色的较暗版本。 |
4 | static Color decode(String nm) 将String转换为整数并返回指定的不透明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) 返回一个float数组,该数组仅包含cspace参数指定的ColorSpace中Color的颜色分量。 |
12 | float[] getColorComponents(float[] compArray) 返回一个float数组,该数组仅包含Color的ColorSpace中Color的颜色分量。 |
13 | ColorSpace getColorSpace() 返回此Color的ColorSpace。 |
14 | float[] getComponents(ColorSpace cspace, float[] compArray) 返回一个float数组,其中包含由cspace参数指定的ColorSpace中Color的颜色和alpha分量。 |
15 | float[] getComponents(float[] compArray) 返回一个float数组,其中包含Color的ColorSpace中Color的颜色和alpha分量。 |
16 | int getGreen() 返回默认sRGB空间中0-255范围内的绿色分量。 |
17 | static Color getHSBColor(float h, float s, float b) 根据HSB颜色模型的指定值创建Color对象。 |
18 | int getRed() 返回默认sRGB空间中0-255范围内的红色分量。 |
19 | int getRGB() 返回表示默认sRGB ColorModel中颜色的RGB值。 |
20 | float[] getRGBColorComponents(float[] compArray) 返回默认sRGB颜色空间中仅包含Color颜色分量的float数组。 |
21 | float[] getRGBComponents(float[] compArray) 返回一个float数组,其中包含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
颜色示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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 IoWiki", 50, 70);
g2.setColor(Color.GRAY);
g2.drawString("Welcome to IoWiki", 50, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出
AWT BasicStroke Class
介绍 (Introduction)
BasicStroke类声明默认sRGB颜色空间中的颜色或ColorSpace标识的任意颜色空间中的颜色。
类声明
以下是java.awt.BasicStroke类的声明:
public class BasicStroke
extends Object
implements Stroke
字段 (Field)
以下是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 - 通过在半径为线宽的半径处舍入角来连接路径段。
类构造函数
SN | 构造函数和描述 |
---|---|
1 | BasicStroke() 使用所有属性的默认值构造一个新的BasicStroke。 |
2 | BasicStroke(float width) 使用指定的线宽构造一个实心的BasicStroke,并使用cap和join样式的默认值。 |
3 | BasicStroke(float width, int cap, int join) 构造具有指定属性的实体BasicStroke。 |
4 | BasicStroke(float width, int cap, int join, float miterlimit) 构造具有指定属性的实体BasicStroke。 |
5 | BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase) 构造具有指定属性的新BasicStroke。 |
类方法
SN | 方法和描述 |
---|---|
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 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.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("IoWiki", 130, 200);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT并键入以下命令。
D:\AWT>javac com\iowiki\gui\AwtGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AwtGraphicsDemo
验证以下输出