Java AWT组件
本文最后更新于:2024年3月18日 凌晨
Java AWT组件
AWT部件概述
- AWT部件层次关系如下图所示,
Component
类处于GUI部件类层次的顶层,其直接子类有Container
(容器)和其他8个基本部件。
Component
类为一个抽象类,其中定义了所有GUI部件普遍适用的方法,以下为若干常用方法:void add(PopupMenu popup)
:给部件加入弹出菜单。Color getBackground()
:获取部件的背景色。Font getFont()
:获取部件的显示字体。Graphics getGraphics()
:获取部件的画笔(Graphocs对象)void repaint(int x,int y, int width,int height)
:在部件的指定区域重新绘图。void setBackground(Color c)
:设置部件的背景。void setEnabled(boolean b)
:是否让部件功能有效,在无效情况下部件将变成灰色。void setFont(Font f)
:设置部件的显示字体。void setSize(int width,int height)
:设置部件的大小。void setVisible(boolean b)
:设置部件是否可见。void setForeground(Color c)
:设置部件的前景色。void requestFocus()
:让部件获得焦点。Toolkit getToolkit()
:取得部件的工具集(Toolkit),利用Toolkit
的beep()
方法可让计算机发出鸣叫声。FontMetrics getFontMetrics(Font font)
:取得某字体对应的FontMerics
对象。
窗体容器
- 在图形用户界面中经常用到窗体。
- 在
Java Application
程序中窗体是图形界面设计所必须的容器。 - 在
Java Applet
分有边框的Window
子类和无边框的Panel
子类。 Frame
和Applet
分别是Window
和Panel
的子类。
Frame
- Frame的常用构造方法为
Frame(String title)
,其中参数title指定窗体标题,新创建的Frame是不可见的。setVisible(true)
方法或show()
方法让窗体可见。setSize(width,heiight)
方法为窗体设置大小。pack()
方法让布局管理器根据部件的大小来调整确定窗体的尺寸。setResizable(flase)
方法固定窗体的大小。
1 |
|
paint
- 通过重写Frame的
paint(Graphics g)
方法,可以实现获得画笔Graphics
1 |
|
Graphics
- 设置画笔的属性。
1 |
|
- 通过画笔绘制图形。
1 |
|
- 通过画笔绘制文本。
1 |
|
实例
1 |
|
Panel
- Panel需要放置在Frame中,可以在同一个Frame中放置多个。
- Panel与Frame都可以放置其他组件。
1 |
|
加入交互部件
add()
方法将指定的GUI部件加入到容器中,GUI部件在容器中如何排列取决于布局选择。
Button
1 |
|
Button的事件响应
- 可以监听按钮被点击的事件。
- 当多个按钮被同一个监听器监听是,可以通过
getActionCommand()
获取按钮名。
实例
1 |
|
TextField与TextArea
TextField
- 文本框只能编辑一行数据,由TextField类实现,其构造方法有如下4种:
TextField()
:构造一个单行文本输入框。TextField(int columns)
:构造一个指定长度的单行文本输入框。TextField(String text)
:构造一个指定初始内容的单行文本输入框。TextField(String text,int columns)
:构造一个指定长度,指定初始内容的单行文本输入框。
- 在某种情况下,用户可能希望自己的输入不被别人看到,这时可以用
TextField
类中的setEchoChar()
方法设置回显字符,使用户的输入全部以某个特殊字符显示在屏幕上,例如,以下设置密码输入框的回显字符为*
1 |
|
TextArea
- 文本域也称多行文本输入框,其特点是可以编辑多行文字,文本域由TextArea类实现,其构造方法有如下4种:
TextArea()
:构造一个文本域。TextArea(int rows,int columns)
:构造一个指定行数和列数的文本域。TextArea(String text)
:构造一个显示指定文字的文本域。TextArea(String text,int rows,int columns)
:按指定行数,列数和默认值构造多行文本域。
- 例如:
1 |
|
文本部件的常用方法
数据的写入与读取
- 文本框与文本域均是
TextComponent
类的子类,在这个父类中定义了对文本输入部件的公共方法,其中最常用的是数据的写入与读取。String getText()
:获取输入框中的数据。void setText(String text)
:想输入框中写入数据。boolean isEditable()
:判断输入框是否可编辑,非编辑状态下,不能通过键盘操作输入数据。
指定和获取文本区域中"选定状态”文本
- 本文输入部件中的文本可以进行选定操作,以下方法用于指定和获取文本区域中"选定状态”文本。
void select(int start,int end)
:选定由开始和结束位置指定的文本。void selectAll()
:选定所有文本。void setSelectStart(int start)
:设置选定开始位置。void setSelectEnd(int end)
:设置选定结束位置。int getSelectionStart()
:获取选定开始位置。int getSelectionEnd()
:获取选定结束位置。String getSelectedText()
:获取选定的文本数据。
屏蔽回显
- 屏蔽回显只适用于文本框,以下为相关方法。
void setEchoChar(char c)
:设置回显字符。boolean echoCharIsSet()
:确认当前输入框是否处于不回显状态。char getEchoChar()
:获取回显屏蔽字符。
添加数据
- 以下方法只限于文本域,可以在已有内容的基础上添加新数据,具体方法如下:
void append(String s)
:将字符串添加到文本域的末尾。void insert(String s,int pos)
:将字符串插入到文本域的指定位置。
文本部件的事件响应
- 在文本框中按回车键时,将引发动作事件,事件的注册于处理程序的编写方法与按钮的动作事件相同。
- 当用户对文本输入部件进行任何操作更改操作(如添加,修改和删除)时将引发
TextEvent
事件,为了响应该事件,可以通过addTextListener()
方法注册监听者,在TextListener
接口中定义了如下方法来处理事件。
1 |
|
[例11-7]:在图形界面中,安排一个文本框和文本域,将在文本框中输入的字符同时显示在文本域中,即同步显示,在文本框上按回车键将文本框中内容清空。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!