java 选项事件
Java标签、按钮和按钮事件简介
Java标签、按钮和按钮事件简介Java标签、按钮和按钮事件简介标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关。
标签标签(JLabel)是最简单的Swing组件。
标签对象的作用是对位于其后的界面组件作说明。
可以设置标签的属性,即前景色,背景色、字体等,但不能动态地编辑标签中的文本。
程序关于标签的基本内容有以下几个方面:1.声明一个标签名;2.创建一个标签对象;3.将标签对象加入到某个容器。
JLabel类的主要构造方法是:1.JLabel ():构造一个无显示文字的标签;2.JLabel (String s):构造一个显示文字为s的标签;3.JLabel(String s, int align):构造一个显示文字为s的标签。
align为显示文字的水平方式,对齐方式有三种:左对齐:JLabel.LEFT中心对齐:JLabel.CENTER右对齐:JLabel.RIGHTJLabel类的其他常用方法是:1.setText(String s):设置标签显示文字;2.getText():获取标签显示文字;3.setBackground(Color c):设置标签的背景颜色,默认背景颜色是容器的背景颜色;4.setForeground(Color c):设置标签上的文字的颜色,默认颜色是黑色。
按钮按钮(JButton)在界面设计中用于激发动作事件。
按钮可显示文本,当按钮被激活时,能激发动作事件。
JButton常用构造方法有:1.JButton():创建一个没有标题的按钮对象;2.JButton(String s):创建一个标题为s的按钮对象。
JButton类的其他常用方法有:1.setLabel(String s):设置按钮的标题文字。
2.getLabel():获取按钮的标题文字。
3.setMnemonic(char mnemonic):设置热键4.setToolTipText(String s):设置提示文字。
JAVA常用方法事件大全
JAVA常用方法事件大全JAVA是一种面向对象的编程语言,它提供了众多常用方法和事件来满足程序开发的需求。
下面是JAVA常用方法和事件的详细介绍:1. equals(Object obj)方法:用于比较两个对象是否相等。
默认情况下,它比较的是两个对象的引用是否相等,可以根据需要重写该方法,来比较对象的内容是否相等。
2. hashCode(方法:返回对象的哈希码值。
哈希码是一个整数值,用于快速确定对象在哈希表中的位置。
3. toString(方法:返回对象的字符串表示。
默认情况下,它返回的是对象的类名和对象的哈希码值。
4. getClass(方法:返回对象的运行时类。
运行时类是指对象所属的实际类,而不是对象的引用类型。
5. clone(方法:用于创建并返回对象的副本。
该方法是浅拷贝,即只复制对象的引用,而不复制对象本身。
6. finalize(方法:用于在对象被垃圾回收器回收之前执行一些清理工作。
该方法在对象被销毁之前调用。
7. wait(方法:使线程进入等待状态,直到另一个线程通知它被唤醒。
该方法用于线程之间的通信。
8. notify(和notifyAll(方法:用于唤醒一个或多个正在等待的线程。
这些线程在调用wait(方法后被阻塞。
9. get(和set(方法:用于访问对象的属性。
get(方法用于获取属性的值,set(方法用于设置属性的值。
10. Math类:提供了一些常用的数学方法,如绝对值、四舍五入、最大值、最小值等。
11. String类:提供了一系列字符串操作的方法,如连接字符串、查找子串、替换字符等。
12. StringBuffer和StringBuilder类:用于处理可变的字符串。
它们提供了一些方法进行字符串的添加、删除、插入和替换。
13. ArrayList类:动态数组,可以存储任意类型的对象。
它提供了一些方法进行元素的增加、删除、修改和查询。
14. HashMap类:哈希表,用于存储键值对。
JAVA第四章课后习题解答
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button("+"); btn2=new Button("-"); btn3=new Button("*"); btn4=new Button("÷");
public class Test4_9 extends Frame implements ActionListener{ Button btn; public Test4_9(){ super("弹出窗口练习"); setSize(300,200);
5
setVisible(true); setLayout(new BorderLayout());
TextField txtFl1,txtFl2,txtFl3;
2
Button btn; public Test4_6(){
super("简单加法运算器"); setSize(300,200); setVisible(true); setLayout(new FlowLayout());
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button("=");
中职模块8图形用户界面编程电子课件 Java程序设计案例教程中职 中职 高教版(共35
目录
5. 文本框
JTextField类是一种经常使用的组件,它主要提供了 下列几种构造方法:
JTextField():无参数的构造方法,创建一个初始为 空、可显示字符列数为0的文本框对象。 JTextField(String text):创建一个初始内容为text的文 本框对象。
JTextField(String text,int col):创建一个初始内容 为text、可显示字符列数为col的文本框对象。
目录
5. 文本框
文本框是接受用户输入的一种组件,SwTextField和JPasswordField,用于显示和编辑 较短的、不带格式的一行文本。其中,类 JPasswordField是类JTextField的子类,用于输入口令。 文本字段的使用基于动作事件(即主要监听动作类型的 事件ActionEvent),与按钮等简单控件的用法类似。
目录
8.2.4 布局管理
BorderLayout布局管理器
BorderLayout是JFrame和 JDialog两种容器的默认布局管理器, 它将容器分为5个部分,分别命名为 North、South、West、East和 Center。在使用这种布局管理器管理 组件的排列时,需要为组件指明放的 具体位置,默认位置为中间位置。如 果将组件位置放在North或South,组 件的宽度将延长至与容器一样宽,而 高度不变。如果将组件放在West或 East,组件的高度将延长至容器的高 度减去North和South之后的高度,而 宽度不变。
显示包含3个按钮的确认对话框,按钮分别为“是”、“否”和“撤 销”,该方法返回整型值0、1或2,根据返回值可分别编程执行相应 的操作。
目录
2. 中间容器
Swing的中间容器包含了一些可以被使用在许多不同 环境下的中间层容器,主要包括面板容器(JPanel类)、 分隔窗格(JSplitPane类)、带滚动条的窗格容器 (JScrollPane类)、工具栏(JToolBar类)等。它们 都是JComponent的子类,通常放在其他容器类中。这 里主要介绍用途广泛的面板容器。
java中textfield中清空内容的方法
一、介绍Java中TextField控件在Java编程中,TextField是一个常用的用户界面控件,用于接收用户输入的文本数据。
它通常用于表单、登录页面、搜索框等场景中,是与用户进行交互的重要组成部分。
二、TextField中清空内容的方法在实际的开发中,经常会遇到需要清空TextField中内容的情况,下面将介绍几种常用的方法。
1. 使用setText方法通过调用TextField的setText方法,可以将其内容设置为空字符串,从而实现清空的效果。
示例代码如下:```javatextField.setText("");```这样就可以清空textField中的内容。
2. 监听键盘事件另一种常见的做法是通过监听键盘事件,在用户按下特定键(如Delete键)时清空TextField中的内容。
示例代码如下:```javatextField.addKeyListener(new KeyAdapter() {Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_DELETE) {textField.setText("");}}});```这样,当用户按下Delete键时,TextField中的内容就会被清空。
3. 使用DocumentListener还可以通过监听Document的变化,在用户输入内容后立即清空TextField中的内容。
示例代码如下:```javatextField.getDocument().addDocumentListener(new DocumentListener() {Overridepublic void removeUpdate(DocumentEvent e) {textField.setText("");}Overridepublic void insertUpdate(DocumentEvent e) {textField.setText("");}Overridepublic void changedUpdate(DocumentEvent e) {textField.setText("");}});```这样,无论用户是删除已有内容还是输入新内容,TextField中的内容都会被立即清空。
java 树组件事件
isAddedPath(TreePath path)
如果path标识的路径被添加到选择中,则返回true
TreeSelectionListener接口中的方法如下所示:
valueChanged(TreeSelectionEvent e)
下面创建一个案例,来说明树组件事件的使用。代码如下所示。
java
单击树的叶子节点,可以触发TreeSelectionEvent树事件,即树中的节点可以发生选择事件。一个树可以使用addTreeSelectionListener方法为树添加一个监视器,处理事件的接口是TreeSelectionListener。树通过使用getLastSelectedPathComponent()方法获取选中的节点,使用getUserObject()方法得到与节点相关的信息。
node2.add(new DefaultMutableTreeNode("打印帮助"));
root.add(node2);
JTree tree = new JTree(root); //得到JTree的实例
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();//得到JTree的Renderer
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
//森林状的关系图
public class JTreeDemo extends JFrame
{
JTextField jtfInfo; //文本域,用于显示点击的节点名称
java swing常用的9种组件
在Java1.0中,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。
遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。
因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。
同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。
1996年,SUN公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。
Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。
此外,和原来的AWT相比,Swing 中提供了内容更多、使用更为方便的组件。
在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。
JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。
实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。
Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT 中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。
并且,Swing 仍使用AWT 1.1的事件处理模型。
虽然现在AWT组件仍得到支持,但是建议在你的应用程序中尽量使用Swing组件和1.1的事件模型。
1.标签(JLabel)标签(JLabel)通常是用来标识另外一个组件的含义。
以在标签上显示文字、图象或是文字图象的组合。
Java常用方法大全
Java常用方法大全字符串1、获取字符串的长度length()2 、判断字符串的前缀或后缀与已知字符串是否相同前缀startsWith(String s)后缀endsWith(String s)3、比较两个字符串equals(String s)4、把字符串转化为相应的数值int型Integer.parseInt(字符串)long型Long.parseLong(字符串)float型Folat.valueOf(字符串).floatValue()double型Double.valueOf(字符串).doubleValue()4、将数值转化为字符串valueOf(数值)5、字符串检索indexOf(Srting s) 从头开始检索indexOf(String s ,int startpoint) 从startpoint处开始检索如果没有检索到,将返回-16、得到字符串的子字符串substring(int startpoint) 从startpoint处开始获取substring(int start,int end) 从start到end中间的字符7、替换字符串中的字符,去掉字符串前后空格replace(char old,char new) 用new替换oldtrim()8、分析字符串StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)StringTokenizer(String s,String delim) delim是自己定义的分隔符nextToken() 逐个获取字符串中的语言符号boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false countTokens() 得到一共有多少个语言符号文本框和文本区1、文本框TextField() 构造文本框,一个字符长TextField(int x) 构造文本框,x个字符长TextField(String s) 构造文本框,显示ssetText(String s) 设置文本为sgetText() 获取文本setEchoChar(char c) 设置显示字符为csetEditable(boolean) 设置文本框是否可以被修改addActionListener() 添加监视器removeActionListener() 移去监视器2、文本区TextArea() 构造文本区TextArea(String s) 构造文本区,显示sTextArea(String s,int x,int y) 构造文本区,x行,y列,显示s TextArea(int x,int y) 构造文本区,x行,y列TextArea(String s,int x,ing y,int scrollbar)scrollbar的值是:TextArea.SCROLLBARS_BOTHTextArea.SCROLLBARS_VERTICAL_ONL YTextArea.SCROLLBARS_HORIZONTAL_ONL Y TextArea.SCROLLBARS_NONEsetText(String s) 设置文本为sgetText() 获取文本addTextListener() 添加监视器removeTextListener() 移去监视器insert(String s,int x) 在x处插入文本sreplaceRange(String s,int x,int y) 用s替换从x到y处的文本append(String s) 在文本的最后追加文本sInt getCaretPosition(int n) 获取文本区中光标的位置按钮1、按钮Button() 构造按钮Button(String s) 构造按钮,标签是ssetLabel(String s) 设置按钮标签是sgetLabel() 获取按钮标签addActionListener() 添加监视器removeActionListener() 移去监视器标签1、标签Label() 构造标签Label(String s) 构造标签,显示sLabel(String s,int x)x是对齐方式,取值:Label.LEFTLabel.RIGHTLabel.CENTERsetText(String s) 设置文本sgetText() 获取文本setBackground(Color c) 设置标签背景颜色setForeground(Color c) 设置字体颜色选择框1、选择框Checkbox() 构造选择框Checkbox(String s) 构造选择框,给定标题sCheckbox(String s,boolean b) b设定初始状态Checkbox(String s,boolean b,CheckboxGroup g) g设定了所属的组(有了组就成为单选框)addItemListener() 添加监视器removeItemListener() 移去监视器getState() 返回选择框的是否选中状态setState(boolean b) 设置选择框的状态getLabel() 获取选择框的标题setLabel(String s) 设置选择框的标题为s选择控件和滚动列表1、选择控件Choice() 构造选择控件add(String s) 向选择控件增加一个选项addItemListener() 添加监视器removeItemListener() 移去监视器getSelectedIndex() 返回当前选项的索引getSelectedItem() 返回当前选项的字符串代表insert(String s,int n) 在n处插入选项sremove(int n)removeAll()2、滚动列表List() 构造滚动列表List(int n) 参数n是可见行数List(int n,boolean b) 参数b是设置是否可以多项选择add(String s) 向列表的结尾增加一个选项add(String s,int n) 在n处增加一个选项AddActionListener() 滚动列表添加监视器addItemListener() 滚动列表上的选项添加监视器remove(int n) 删除n初的选项remnoveAll() 删除全部选项getSelectedIndex() 返回当前选项的索引getSelectedItem() 返回当前选项的字符串代表3、组件类的一些常用方法void setBackground(Color c) 设置组件背景颜色void setForeground(Color c) 设置组件前景颜色void setFonts(Font f) 设置组件字体void setBounds(int x,int y,int w,int h) 设置坐标,x,y表示在容器中坐标,w,h表示宽和高void setLocation(int x,int y) 移动到x,y 处void setSize(int w,int h) 设置宽和高void setVisible(boolean b) 设置组建是否可见int getBounds().wigth 获取宽int getBounds().height 获取高int getBounds().x 获取x 坐标int getBounds().y 获取y 坐标Toolkit getToolkit() 获取工具包对void setEnabled(boolean b) 设置是否可以使用(默认可以)窗口和菜单1、窗口Frame() 构造窗口Frame(String s) 窗口标题是ssetBounds(int x,int y,int w,int h) 窗口位置x,y,宽w,高ysetSize(int w,int h) 设置窗口位置(单位是像素)setBackground(Color c) 设置背景颜色setVisible(boolean b) 设置窗口是否可见pack() 窗口出现时紧凑setTitle(String s) 设置标题为sgetTitle() 获取标题setResizable(boolean b) 设置窗口大小是否可以调整2、菜单条Menubar() 构造菜单条setMenubar() 窗口添加菜单条3、菜单Menu() 构造菜单Menu(String s) 构造菜单,标题saddadd(MenuItem item) 菜单增加菜单选项itemadd(String s) 向菜单增加选项sgetItem(int n) 获取n处的选项getItemCount() 获取选项数目insert(MenuItem item,int n) 在n处插入菜单选项iteminsert(String s,int n) 在n处插入菜单选项remove(int n) 删除菜单的n处的菜单选项removeAll() 删除全部4、菜单项MenuItem() 构造菜单项MenuItem(String s) 构造标题是s的菜单项setEnabled(boolean b) 设置是否可以被选择getLabel() 得到菜单选项名addActionListener() 添加监视器5、有关菜单的技巧addSeparator() 增加菜单分割线CheckboxMenuItem() 复选框菜单项setShortcut(MenuShortcut k) 设置快捷键(k取值KeyEvent.VK_A----KeyEvent.VK_Z)建立对话框1、Dialog类Dialog(Frame f,String s) 构造对话框,初始不可见,s是标题,f是对话框所依赖的窗口Dialog(Frame f,String s,boolean b) b设置初始是否可见getTitle() 获取对话框标题setTitle(String s) 设置对话框标题setModal(boolean b) 设置对话框模式setSize(int w,int h) 设置对话框大小setVisible(boolean b) 显示或隐藏对话框2、FileDialog类Filedialog(Frame f,String s,int mode) mode的值是fileDialog.LOAD或者fileDialog.SAVE public String getDirectory() 获取当前文件对话框中显示的文件所属目录public String getFile() 获取当前文件对话框中文件的字符串表示,不存在返回nullJava中的鼠标和键盘事件1、使用MouseListener借口处理鼠标事件鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出鼠标事件类型是MouseEvent,主要方法有:getX(),getY() 获取鼠标位置getModifiers() 获取鼠标左键或者右键getClickCount() 获取鼠标被点击的次数getSource() 获取鼠标发生的事件源事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener() 处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法mousePressed(MouseEvent) 负责处理鼠标按下事件mouseReleased(MouseEvent) 负责处理鼠标释放事件mouseEntered(MouseEvent) 负责处理鼠标进入容器事件mouseExited(MouseEvent) 负责处理鼠标离开事件mouseClicked(MouseEvent) 负责处理点击事件2、使用MouseMotionListener接口处理鼠标事件事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动鼠标事件的类型是MouseEvent事件源获得监视器的方法是addMouseMotionListener()处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法mouseDragged() 负责处理鼠标拖动事件mouseMoved() 负责处理鼠标移动事件3、控制鼠标的指针形状setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书P 210)4、键盘事件键盘事件源使用addKeyListener 方法获得监视器键盘事件的接口是KeyListener 接口中有3个方法public void keyPressed(KeyEvent e) 按下键盘按键public void keyReleased(KeyEvent e) 释放键盘按键public void keyTypde(KeyEvent e) 按下又释放键盘按键Java多线程机制1、Java的线程类与Runnable接口Thread类public Thread() 创建线程对象public Thread(Runnable target) target 称为被创建线程的目标对象,负责实现Runnable接口线程优先级Thread类有三个有关线程优先级的静态常量:MIN_PRIORITY,MAX_PRIORITY,NORM_PRIORITY新建线程将继承创建它的副相承的优先级,用户可以调用Thread类的setPriority(int a)来修改a的取值:Thread.MIN_PRIORITY,Thread.MAX_PRIORITY,Thread.NORM_PRIORITY主要方法启动线程start()定义线程操作run()使线程休眠sleep()sleep(int millsecond) 以毫秒为单位的休眠时间sleep(int millsecond,int nanosecond) 以纳秒为单位的休眠时间currentThread() 判断谁在占用CPU的线程第二十章输入输出流1、FileInputStream类FileInputStream(String name) 使用给定的文件名name创建一个FileInputStream对象FileInputStream(File file) 使用File对象创建FileInpuStream对象File类有两个常用方法:File(String s) s确定文件名字File(String directory,String s) directory是文件目录例如:File f=new File("Myfile.dat");FileInputStream istream=new FileInputStream(f);处理I/O异常当出现I/O错误的时候,Java生成一个IOException(I/O异常)对象来表示这个错误的信号。
谈Java技术中的事件处理与应用
[1] 《Java 程序设计实践教程》刘万军 宋强 清华大学出 版社 2006 年 9 月
[2] 《Java 编程技术》孙一林 彭波 机械工业出版社 2008 年 6月
(收稿日期:20 11. 05 .05 )
·64·
事件源
触发的事件类的类型Button NhomakorabeaActionEvent
CheckBox
ActionEve nt、ItemEvent
—— —— —— —— —— —— —— 作者简介:邢素萍(1957-),女,江苏南京人,南京工业职业技术学院教授,研究方向:Java 技术,南京,210046
王 健南 (1957- ),男 ,江 苏南 京人 ,南 京工 业职 业技 术学 院教 授, 研究 方向 :数 据库 技术 ,教 育技 术, 南京 ,210046
Microcomputer Applications Vol. 27, No.12, 2011
技术交流
微型电脑应用
2011 年第 27 卷第 12 期
文章编号:100 7-757X(2011)12-0063-02
谈 Java 技 术 中 的 事 件 处 理 与 应 用
邢素萍,王健南
摘 要:简述了 JAVA 语言面向对象程序设计中事件处理的基本方法,并通过一个包含命令按钮的实例说明了编程基本原则。
Java 把事件类分为语义事件和底层事件,语义事件直接 继承自 AWTEvent 类。如: ActionEvent、Adjustm enEvent
图2
在 AWT 组件中,有的只是触发一个事件处理类,而有 的可能触发几个事件处理类,给出常用组件与可能触发事件 的关系,如表 1 所示:
表 1 事件源与触发的事件类类型的关系
java 单击事件
java 单击事件ActionEvent单击事件是Java GUI中比较常见的事件之一,是高级事件。
单击按钮、单选按钮和菜单项等都会触发相应的ActionEvent事件。
在下拉菜单中,单击某一个菜单项时,会执行相关操作。
其实质上是使用菜单项的单击事件,即ActionEvent事件。
当单击上面菜单项事件源时,会触发Actio nEvent事件,即ActionEvent类创建一个实例化对象。
通过ActionEvent类的getActionCommand()方法,可以获取触发事件的事件源名称。
一个类如果要成为ActionEvent事件的监听器,必须要继承ActionListener接口。
ActionListener接口具有一个名称为actionPerformed(ActionEvent e)的方法。
下面创建一个案例,来说明单击事件的使用。
代码如下所示。
单项itemNative、itemMotif、itemMetal和itemColor。
在下面分别为四个菜单项添加相应的事件,代码“itemNative.addActionListener(new ActionListener(){}”表示为it emNative添加了一个ActionEvent事件的匿名类,在实现的方法actionPerformed()中,设置要实现操作的代码。
其他菜单项依此类推。
执行上述代码,会显示初始化窗口。
单击【窗口风格】菜单,会显示【系统平台风格】、【Motif风格】和【跨平台风格】三个菜单项。
单击【Motif风格】、【系统平台风格】或【跨平台风格】菜单项,会改变窗体的风格,如图10-12所示。
单击【改变颜色】|【选择颜色】菜单项,弹出颜色选择框,选择颜色并单击【确定】按钮,改变窗体的颜色,如图10-13所示。
图10-12 窗口风格图10-13 选择颜色。
java 事件处理模型
java 事件处理模型当用户在Java GUI界面进行一些操作时,例如,移动鼠标、选取菜单项目等,将会引发相关事件(Event)。
在Java中,事件用具体的对象来表示,用户的相关动作会由JVM(Java虚拟机)创建成相应的事件对象,用以描述事件来源、事件类型以及相关的信息。
1.事件处理流程Java对事件的处理采用授权事件模型,也称为委托事件模型(Delegation Even t Model)。
在这个模型下,每个组件都有相应的事件,如按钮具有单击事件,文本域具有内容改变事件等。
当对于某个组件的事件被触发后,组件就会将事件发送给组件上注册的每一个事件监听器(EventListener),事件监听器中定义了与不同事件相对应的事件处理者,此时事件监听器会根据不同的事件信息调用不同的事件处理者,完成对这次事件的处理。
只有向组件注册的事件监听器才会收到事件信息。
此种模型的显著特点是,当组件被触发事件后,本身不去处理,而将处理的操作交给第三方来完成。
例如,当用户在GUI界面单击了一个按钮信息,此时按钮就是一个事件源对象,按钮本身没有权利对这次单击做出反应,需要做的就是将信息发送给本身注册的监听器(事件处理者)来处理。
在现实生活中,授权处理的实例也是非常的多。
打个不太恰当的比喻,比如说有一位李先生,李先生可能会发生很多法律纠纷,可能是民事法律纠纷,也可能是刑事法律纠纷,那么李先生可以请律师,他可以授权王律师负责帮他打民事法律的官司,同时也可以授权张律师帮他打刑事法律的官司。
这个请律师的过程从李先生的角度来看,就是授权的过程,而从王律师和张律师的角度来看,一旦被授权,他们就得时刻对李先生负责,时刻“监听”李先生的事件信息,一旦发生民事纠纷了,王律师就要马上去处理,而一旦发生刑事纠纷了,张律师就要马上进行处理。
此时此刻,李先生就是事件源,王律师是一个事件处理者,张律师是另外一个事件处理者,民事纠纷和刑事纠纷就是不同类型的事件。
7.4+Java的事件处理
7.4.3 文本事件(TextEvent)的处理 文本事件(TextEvent)的处理
TextEvent类只包含一个事件,即代表文本区域中 类只包含一个事件, 类只包含一个事件 文本变化的事件TEXT-VALUE-CHANGED,在文 , 文本变化的事件 本区域中改变文本内容。例如,删除字符、 本区域中改变文本内容。例如,删除字符、键入 字符都将引发这个事件。这个事件比较简单,不 字符都将引发这个事件。这个事件比较简单, 需要特别判断事件类型的方法和常量。 需要特别判断事件类型的方法和常量。 Java中用于文本处理的基本组件有两种:单行文本 中用于文本处理的基本组件有两种: 中用于文本处理的基本组件有两种 框TextField和多行文本区域 和多行文本区域TextArea,它们都是 , TextComponent的子类。 的子类。 的子类
7.4.4 选择事件(ItemEvent)的处理 选择事件(ItemEvent)的处理
ItemEvent类只包含一个事件,即代表选择项的选 类只包含一个事件, 类只包含一个事件 中状态发生变化的事件ITEM-STATE-CHANGED。 。 中状态发生变化的事件 引发这类事件的动作包括: 引发这类事件的动作包括: (1) 改变列表类 改变列表类 列表类List对象选项的选中或不选中状态。 对象选项的选中或不选中状态 对象选项的选中或不选中状态。 (2) 改变下拉列表类 改变下拉列表类 下拉列表类Choice对象选项的选中或不选中 对象选项的选中或不选中 对象 状态。 状态。 复选按钮类Checkbox对象的选中或不选中状 对象的选中或不选中状 (3) 改变复选按钮类 改变复选按钮类 对象 态。 (4) 改变检测盒菜单项 改变检测盒菜单项CheckboxMenuItem对象的选 对象的选 中或不选中状态。 中或不选中状态。
java键盘监听事件的用法
java键盘监听事件的用法Java中,键盘监听事件用于捕获并处理用户在键盘上的输入。
键盘监听事件能够感知用户按下和释放特定键的动作,并触发相应的事件处理程序。
本文将逐步介绍Java键盘监听事件的用法,包括如何注册监听器、如何处理事件以及一些常见问题的解决方法。
一、注册键盘监听器要使用键盘监听事件,首先需要注册一个键盘监听器。
在Java中,可以通过以下步骤来注册键盘监听器:1. 创建一个类,实现java.awt.event.KeyListener接口。
javaimport java.awt.event.KeyEvent;import java.awt.event.KeyListener;public class MyKeyListener implements KeyListener {实现接口中的方法@Overridepublic void keyPressed(KeyEvent e) {处理按下键的事件}@Overridepublic void keyReleased(KeyEvent e) {处理释放键的事件}@Overridepublic void keyTyped(KeyEvent e) {处理键入字符的事件}}2. 在需要监听键盘事件的组件(例如窗口或面板)上注册监听器。
javaimport java.awt.*;import javax.swing.*;public class MyFrame extends JFrame {public MyFrame() {创建一个面板JPanel panel = new JPanel();注册键盘监听器panel.addKeyListener(new MyKeyListener());panel.setFocusable(true); 设置面板可以获取焦点panel.requestFocus(); 使面板获取焦点添加面板到窗口add(panel);设置窗口属性setTitle("Keyboard Event Sample");setSize(300, 200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {new MyFrame();}}二、处理键盘事件注册了键盘监听器后,就可以处理键盘事件了。
java 键盘事件
java 键盘事件
键盘事件是KeyEvent类对象。
通过键盘事件,可以利用按键来控制和执行一些操作或从键盘上进行输入。
键盘事件包括三个事件:键按下、键松开、键按下又松开。
要处理键盘事件必须实现KeyListener接口,该接口中定义了下面三个方法:
●public void keyPressed(KeyEvent e) 当键被按下时调用该方法。
●public void keyReleased(KeyEvent e) 当键被松开时调用该方法。
●public void keyTyped(KeyEvent e) 当键被按下又松开时调用该方法。
每个键盘事件都有一个相关的键字符和键编码,它们可以通过KeyEvent类的getKeyChar()和getKeyCode()方法获得。
事件类KeyEvent常用方法如表10-3所示:
表10-3 KeyEvent类常用方法
另外,在KeyEvent类中为许多键定义了常量,表10-4列出了一些常用的键与其对应的常量。
表10-4 常用键和对应的常量
下面创建一个案例,来说明键盘事件的使用。
代码如下所示。
在上述代码中,当按下Ctrl+x时,会改变按钮大小,如图10-14所示。
当按下Shift+x时,会改变按钮座标,如图10-15所示。
图10-14 按下Ctrl+x键时
图10-15 按下Shift+x键时。
java 弹出菜单事件
java 弹出菜单事件
在编写图形界面时,人们往往希望直接在窗口上单击鼠标右键,就可以显示弹出菜单。
通过弹出的上下文菜单,直接进行相关操作。
实现弹出菜单,需要通过鼠标事件MouseEvent和单击事件ActionEvent实现。
这两个事件在前面都已经介绍过,这里就不再重复介绍。
弹出菜单操作中,鼠标事件的事件源通常为窗口和文本框组件等,ActionEvent事件的事件源通常为菜单项。
下面创建一个案例,来说明弹出菜单事件的使用。
代码如下所示:
执行上述代码中,当右击鼠标时,会弹出快捷菜单。
选择不同的颜色会修改窗体的背景颜色,如图10-16所示。
图10-16 弹出菜单事件。
java鼠标键盘事件及实例
鼠标监听器鼠标监听器mouseListener监听鼠标事件MouseEvent。
相应事件和处理方法如下表:鼠标事件处理方法MOUSE_CLICKED MouseClicked (MouseEvent) 鼠标点击(单或双)MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)鼠标事件MouseEvent常用方法int getClickCount() 得到点击次数1 OR 2;int getX(), int getY() 得到鼠标的(象素)位置。
对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener。
因为许多程序不需要监听鼠标运动,把两者分开可简化程序。
有两个方法处理鼠标运动事件:MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息。
例2下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标的操作。
MouseMotionListener mouseDragged(MouseEvent e)mouseMoved(MouseEvent e)-----------------------------------------------------------------------下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来。
java 窗口事件
ShowInfo.append("\n窗口打开");
}
//窗口正在关闭
public void windowClosing(WindowEvent we)
{
ShowInfo.append("\n窗口正在关闭");
System.exit(0c void windowClosed(WindowEvent we)
{
ShowInfo.append("\n窗口不在激活状态");
}
//窗口最小化
public void windowIconified(WindowEvent we)
{
ShowInfo.append("\n窗口最小化");
}
//撤消图标化
public void windowDeiconified(WindowEvent we)
public WinEventDemo()
{
content=getContentPane();
setTitle("窗口事件测试");
content.setLayout(new FlowLayout());
ShowInfo=new JTextArea(15,30);
content.add(new JScrollPane(ShowInfo));
{
ShowInfo.append("\n程序结束运行,关闭窗口");
}
//窗口被激活
public void windowActivated(WindowEvent we)
{
ShowInfo.append("\n窗口被激活");
实验四Java事件处理汽院含答案
实验四Java事件处理汽院含答案实验四 Java事件处理实验目的1( 掌握Java语言中的事件处理方法2( 掌握Java语言中事件源、监视器和处理事件的接口的概念实验导读1( Java事件处理简介学习组件除了了解组件的属性和功能外,学习组件除了了解组件的属性和功能外,一个更重要的方面是学习怎样处理组件上发生的界面事件。
当用户在文本框中输入文本后按Enter键、单击按钮、在一个下拉列表框中选择一个条目等操作时,都发生界面事件。
在学习处理事件时,必须很好地掌握事件源、监视器、处理事件的接口这三个概念。
事件源:能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。
也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。
监视器:需要一个对象对事件源进行监视,以便对发生的事件作出处理。
事件源通过调用相应的方法将某个对象作为自己的监视器。
例如,对于文本框,这个方法是: addActionListener(监视器);对于获取了监视器的文本框,当文本框获得输入焦点之后,如果用户按Enter 键,Java运行系统就自动用ActionEvent类创建一个对象,即发生了ActionEvent事件。
也就是说,事件源获得监视器后,相应的操作就会导致事件的发生,并通知监视器,监视器就会做出相应的处理。
处理事件的接口:监视器负责处理事件源发生的事件。
监视器是一个对象,为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体,那么当事件源发生事件时,监视器就自动调用类实现的某个接口中的方法。
2( 文本框上的ActionEvent事件java.awt.event包中提供了许多事件类和处理各种事件的接口。
对于文本框,这个接口的名字是ActionListener,这个接口中只有一个方法: public void actionPerformed(ActionEvent e)当在文本框中输入字符并按Enter键时,java.awt.event包中的ActionEvent 类自动创建一个事件对象,并将它传递给actionPerformed(ActionEvent e)方法中的参数e,监视器自动调用这个方法对发生的事件做出处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(combo.getSelectedIndex()==2)
jl.setIcon(new ImageIcon("3.gif"));
//当组合框选项是4时,设置标签图片
if(combo.getSelectedIndex()==3)
jl.setIcon(new ImageIcon("4.gif"));
如果要在Swing实现选项事件,其事件处理者需要继承ItemListener接口。该接口中只有一个方法“itemStateChanged(ItemEvent e)”,该方法在用户已选定项或取消选定项某项时调用。
下面创建一个案例,来说明选项事件的使用。代码如下所示。
import javax.swing.*;
//当组合框选项是5时,设置标签图片
if(combo.getSelectedIndex()==4)
jl.setIcon(new ImageIcon("5.gif"));
}
}
public static void main(String args[])
{
new ItemEventShow();
}
}
在上述代码中,实现的功能是当你选择下拉列表框中的某张图片时,会响应单击事件,显示选中的图片。Mo类是响应选项事件的类,在该类中,通过combo对象的getSelectedIndex()方法进行判断,最后得出要显示的图片。执行上述代码,结果如图10-10所示。
jl=new JLabel();
//设置标签的布局方式
content.setLayout(new FlowLayout());
//为容器添加监听事件
combo.addItemListener(new Mo());
//向容器分别添加标签、组合框
content.add(jll);
content.add(combo);
{
//当组合框选项是1时,设置标签图片
if(combo.getSelectedIndex()==0)
jl.setIcon(new ImageIcon("1.gif"));
//当组合框选项是2时,设置标签图片
if(combo.getSelectedIndex()==1)
jl.setIcon(new ImageIcon("2.gif"));
ItemEvent类常用的方法如表10-2所示:
表10-2ItemEvent类常用方法
方法名称
功能描述
getItem()
返回受事件影响的项,即选中或取消的项
ItemSelectable getItemSelectable()
返回事件的产生程序
getStateChange()
返回状态更改的类型(已选定或已取消选定)
java.awt.*;
import java.awt.event.*;
class ItemEventShow extends JFrame
{
Container content;//添加容器
JComboBox combo;//创建组合框
JLabel jll,jl;//添加标签
public ItemEventShow()
content.add(jl);
//设置标题
setTitle("选项事件测试");
//设置大小
setSize(400,400);
//设置显示
setVisible(true);
}
class Mo implements ItemListener
{
public void itemStateChanged(ItemEvent e)
java
在Java GUI中,当进行选择性的操作时,如单击复选框或列表项时,或者当一个选择框或一个可选菜单的项被选择或取消时生成选项事件。选中或取消其中一项都会触发相应的选项事件。触发选项事件的组件比较多,如JComboBox、JCheckBox、JRadioButton组件。当用户在下拉列表、复选框和单选按钮中,选择一项或取消一项,都会触发所谓的选项事件ItemEvent,此时ItemEvent类将会自动创建一个事件对象。
图10-10选项事件
{
content=getContentPane();//初始化容器
//定义数组
String s[]={"南非豹","波斯猫","欧州牛","悠闲狗","非洲鹦鹉"};
//添加数组到组合框
combo=new JComboBox(s);
//初始化标签
jll=new JLabel("选择你喜欢的动物:");