Java中的鼠标事件和键盘事件
jnativehook 用法
jnativehook 是一个 Java 库,它提供全局的键盘和鼠标事件侦听功能。
以下是使用 jnativehook 的基本步骤:1. 下载和安装 jnativehook:首先,你需要从 jnativehook 的官方网站下载相关的库文件,并将其添加到你的 Java 项目的类路径中。
2. 创建一个监听器:在 Java 项目中创建一个监听器类,该类将实现 jnativehook 的接口来处理各种事件。
你可以创建一个名为 MyKeyListener 的类,并让它实现 NativeKeyListener 接口。
以下是一个简单的示例:java复制代码import org.jnativehook.GlobalScreen;import org.jnativehook.NativeHookException;import org.jnativehook.keyboard.NativeKeyEvent;import org.jnativehook.keyboard.NativeKeyListener;public class MyKeyListener implements NativeKeyListener {public void nativeKeyPressed(NativeKeyEvent e) {System.out.println("Key Pressed: " +NativeKeyEvent.getKeyText(e.getKeyCode()));}public void nativeKeyReleased(NativeKeyEvent e) {System.out.println("Key Released: " +NativeKeyEvent.getKeyText(e.getKeyCode()));}public void nativeKeyTyped(NativeKeyEvent e) {System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));}public static void main(String[] args) {try {GlobalScreen.registerNativeHook();} catch (NativeHookException ex) {System.err.println("There was a problem registering the native hook.");System.err.println(ex.getMessage());System.exit(1);}GlobalScreen.addNativeKeyListener(new MyKeyListener());}}在这个示例中,我们创建了一个名为 MyKeyListener 的类,并实现了 NativeKeyListener 接口。
JAVA 如何截获全局鼠标事件
二. 按使用范围分类,主要有线程钩子和系统钩子
(1) 线程钩子监视指定线程的事件消息。
(2) 系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)
中。这是系统钩子和线程钩子很大的不同之处。
几点需要说明的地方:
(1) 如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子,那么系统会自动先调用线程钩子,然后调用系统钩子。
(2)对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩子链。当前钩子处理结束后应把钩子信息传递给下一个钩子函数。而且最近安装的钩子放在链的开始,而最早安装的钩子放在最后,也就是后加入的先获得控制权。
(3) 钩子特别是系统钩子会消耗消息处理时间,降低系统性能。只有在必要的时候才安装钩子,在使用完毕后要及时卸载。
JAVA 如何截获全局鼠标事件
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。
1. 激活,建立,销毁,最小化,最大化,移动,改变尺寸等窗口事件;
2. 完成系统指令;
3. 来自系统消息队列中的移动鼠标,键盘事件;
JAVA模拟键盘鼠标操作
//可以在eclipse下直接运行的示例程序:package key_robot;import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;public class key_robot {public key_robot() {}// 鼠标单击,要双击就连续调用private static void pressMouse(Robot r, int m, int delay) { r.mousePress(m);r.delay(10);r.mouseRelease(m);r.delay(delay);}// 键盘输入方法private static void pressKeys(Robot r, int[] ks, int delay) { for (int i = 0; i < ks.length; i++) {r.keyPress(ks[i]);r.delay(10);r.keyRelease(ks[i]);r.delay(delay);}}public static void main(String[] args) throws Exception { final Robot rb = new Robot();new Thread() {public void run() {rb.delay(2000); // 模拟回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,点击运行后请不要移动鼠标和键盘.\n如果不能正常执行程序,请先关闭输入法");rb.delay(1500);// 设置开始菜单的大概位置int x = 40;int y = Toolkit.getDefaultToolkit().getScreenSize().height- 10; // 鼠标移动到开始菜单,rb.mouseMove(x, y);rb.delay(500);// 单击三次开始菜单for (int i = 0; i < 3; i++)pressMouse(rb, InputEvent.BUTTON1_MASK, 500);rb.delay(1000);// 运行CMD命令r cmd enterint[] ks = { KeyEvent.VK_R, KeyEvent.VK_C, KeyEvent.VK_M,KeyEvent.VK_D, KeyEvent.VK_ENTER, };pressKeys(rb, ks, 500);rb.mouseMove(400, 400);rb.delay(500);// 运行DIR命令dir enterks = new int[] { KeyEvent.VK_D, KeyEvent.VK_I, KeyEvent.VK_R, KeyEvent.VK_ENTER };pressKeys(rb, ks, 500);rb.delay(1000);// 运行CLS命令cls enterks = new int[] { KeyEvent.VK_C, KeyEvent.VK_L, KeyEvent.VK_S, KeyEvent.VK_ENTER };pressKeys(rb, ks, 500);rb.delay(1000);// 运行EXIT命令exit enterks = new int[] { KeyEvent.VK_E, KeyEvent.VK_X, KeyEvent.VK_I, KeyEvent.VK_T, KeyEvent.VK_ENTER };pressKeys(rb, ks, 500);rb.delay(1000);// 右键测试x = Toolkit.getDefaultToolkit().getScreenSize().width - 10;rb.mouseMove(x, y);// 如果是双键鼠标,请改用InputEvent.BUTTON2_MASK标pressMouse(rb, InputEvent.BUTTON3_MASK, 500);// 显示日期调整对话框apressKeys(rb, new int[] { KeyEvent.VK_A }, 1000);rb.delay(2000);pressKeys(rb, new int[] { KeyEvent.VK_ESCAPE }, 0);rb.delay(1000);new Thread() {public void run() {rb.delay(1000); // 回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null, "演示完毕!");}}。
java复习题带答案
一、选择题:1.运行Java程序需要的工具软件所在的目录是 A。
A.JDK的bin目录 B.JDK的demo目录C.JDK的lib目录 D.JDK的jre目录解析:运行Java的JDK一共包含五个目录,分别是:bin目录,该目录包含Java编译器、解释器和许多工具(如服务器工具、IDL、package工具等);lib目录,该目录包含Java 库文件jre目录,该目录是Java程序运行环境的根目录,它下面包含 bin子目录,包括平台所用工具和库的可执行文件以及DLL文件;demo目录,该目录包含源代码的程序示例;include目录,该目录包含Win32子目录,都是本地方法的文件。
因此,本题的正确答案是A。
2.下列关于Java语言特点的叙述中,错误的是 A 。
A.Java是面向过程的编程语言 B.Java支持分布式计算C.Java是跨平台的编程语言 D.Java支持多线程解析:Java是新一代编程语言,具有很多特点:简单易学;利用面向对象技术:分布式计算:健壮性(鲁棒性);安全性;跨平台(即体系结构中立):可移植性:解释执行;高性能;多线程;动态性。
因此,本题的正确答案是A。
3.Java的核心包中,提供编程应用的基本类的包是 A 。
A.ng B.java.util C.java.applet D.java.rmi解析:Java的核心包一共有12个,其中:ng包中封装了所有编程应用的基本类;java.util包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、集合等常用工具;java.applet包为Applet提供执行需要的所有类,。
主要是访问Applet内容的通信类。
java.rmi包提供程序远程方法调用所需的类。
因此,本题的正确答案是A。
4.下列关于Java对import语句规定的叙述中,错误的是 C 。
A.在Java程序中import语句可以有多个B.在Java程序中import语句可以没有C.在Java程序中import语句必须有一个D.在Java程序中import语句引入在所有类定义之前解析:Java程序中使用import关键字导入一个包中的类。
键盘和鼠标事件
例如:直接按光标键时移动图片的位置,按 下Shift键再按光标键时放缩图片,按 Shift+Ctrl键时复位图片的位置及大小。 将窗体的KeyPreview属性设置为True Image1的Strech属性设置为True.
Private Sub Form_Load() Label1.Caption = "直接按光标键移动图片,按下 Shift键再按光标键放缩图片,按Shift+Ctrl键复 位图片。" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 Then Image1.Move 2000, 1000, 1000, 1000 '复位图 片 End If
KeyPress事件中得到的是按键对应的字符 的ASCII码(KeyAscii) KeyUp,KeyDown事件中得到的是按键对应 的键号(KeyCode),键盘104个键都对应着 唯一的键号。
KeyPress事件 对象的KeyPress事件过程的一般格式为:
Privat Sub Object_KeyPress(KeyAscii As Integer)
Function ShiftStatus(Shift As Integer) As String Select Case Shift Case 0: s = "" Case 1: s = “Shift+" Case 2: s = "Ctrl+" Case 3: s = "Shift+Ctrl+" Case 4: s = "Alt+" Case 5: s = "Shift+Alt+" Case 6: s = "Ctrl+Alt+" Case 7: s = "Shift+Ctrl+Alt+" End Select ShiftStatus = s End Function
javascript鼠标及键盘事件总结及案例
javascript⿏标及键盘事件总结及案例⼀、⿏标事件1、单击事件box.onclick2、双击事件(双击时也会触发单击)box.ondblonclick3、⿏标右键box.oncontextmenu=function(){console.log('右键事件');//取消⿏标的默认事件return false;}4、按下|移动|抬起|⿏标悬浮|⿏标移开|⿏标右键onmousedown ⿏标按下onmousemove ⿏标移动onmouseup ⿏标抬起onmouseover ⿏标悬浮onmouserout ⿏标移开(从⽗集移⾄⼦集,触发out事件,紧接着触发⼦集的over事件,并可以冒泡给⽗集(触发⽗集的over)) oncontextmenu ⿏标右键onmouseenter ⿏标悬浮()onmouseleave ⿏标移开(leave默认⼦集是⽗集的⼀部分,所以从⼦集移到⽗集不会触发,enter事件也不会触发)enter:⽗集enter ⼦集enter (不⽀持冒泡)over:⼦集over ⽗集over(想当于⼦集冒泡给⽗集) (⽀持冒泡)总结:将⽗集和⾃⼰分开考虑盒⼦的悬浮离开事件,⽤over | out组合;将⼦集纳⼊⽗集的考虑当中,只考虑⽗集的相应悬浮离开事件,采⽤ enter | leave组合;单独考虑⼀个盒⼦的悬浮离开事件,都可以使⽤⼆、js的盒模型1、应⽤<style>.box{width:100px;height:100px;background:red;}</style><div class="box"></div><script>var box=document.querySelector('.box')var width=getComputedStyle(box,null).width;console.log(width)//转化成数字类型console.log(+(width.slice(0,3)))</script>==>100px2、数字字符转换var a="1213124"//转化成整型a=+a//如果待单位会转化成NaNa=parseInt(a)//字符的切割a.substr(0,3)==>123 //从0往后取3个单位a.slice(0,2)==>12 //从0取到2,前取后不取3、获取paddingheight:100px;background:red;padding:20px;position:absolute;}body{position:relative;}</style><div class="box"></div><script>var box=document.querySelector('.box')var width=getComputedStyle(box,null).width;console.log(width)//转化成数字类型console.log(+(width.slice(0,3)))var clientW=box.clientWidth//获得padding和width的总和console.log(box.clientWidth)//获得盒⼦的总⾼度(padding+height)console.log(box.clientHeight)//padding+border+widthconsole.log(box.offsetWidth)//padding+height+borderconsole.log(box.offsetHeight)//匹配绝对定位的⽅向实现(获取与定位⽗集的距离)left top console.log(box.offsetTop)console.log(box.offsetLeft)</script>三、⿏标事件的拖拽案例1.v1版本<style>.box{width:100px;height:100px;background:red;border: 10px solid black;position:absolute;}</style><div class='box'></div><script>var box=document.querySelector('.box');box.onmousedown=function(){console.log('按下');box.onmousemove=function(ev){console.log('移动');var x=ev.clientX;var y=ev.clientY;box.style.left=x-10+'px';box.style.top=y-10+'px';}};box.onmouseup=function(){console.log('取消移动');box.onmousemove=null;}</script>2、⿏标拖拽事件v2版本<style>.box{width: 100px;height: 100px;border: 10px solid red;background: black;position:absolute;top: 0;left: 0;}</style><div class="box"></div><script>var box=document.querySelector('.box');box.onmousedown=function (fa) {//将移动⿏标捕捉改成⽂档,是为了⿏标就算脱离box也不会停⽌移动 document.onmousemove=function (ev) {console.log('移动');var x=ev.clientX;var y=ev.clientY;box.style.left=x-dX+'px';box.style.top=y-dY+'px';}};box.onmouseup=function () {console.log('移开');//对⿏标移动事件删除document.onmousemove=null;}</script>四、键盘事件1、键盘按下事件(键盘按下会⼀直触发事件)<style>.box{width:100px;height:100px;background:red;}</style><div class="box"></div><script>var box=document.querySelector('.box');document.onkeydown=function(ev){// console.log(ev.keyCode);console.log(ev.which)}</script>2、键盘按下移动盒模型案例<style>.box{width:100px;height:100px;background:red;position:absolute;top:0;left:0;}</style><div class="box"></div><script>var box=document.querySelector('.box');document.onkeydown=function(ev){console.log(ev.keyCode);switch (ev.keyCode){case 37:box.style.left=box.offsetLeft-10+'px';break;case 38:box.style.top=box.offsetTop-10+'px';break;case 39:box.style.left=box.offsetLeft+10+'px';break;case 40:box.style.top=box.offsetTop+10+'px';break;}}</script>四、javascript其他事件1、onload(⽂档加载事件)<script>//将script标签写在标签前⾯使⽤window.onload=function(){var box=document.querySelector('.box')console.log(box)}</script><div class='box'></div>2、onscroll事件window.onscroll=function(){console.log(window.scrollY);}</script><div class='box'></div><br>*1003、盒⼦显影与⿏标滚动事件的案例1)滚动⼀直触发事件<style>.box{width:100px;height:100px;background:red;position:absolute;top: 0;left: 0;}.btn{width: 50px;height: 50px;background: red;display:none;position: fixed;top: 200px;right: 100px;}</style><div class="box"></div><script>//将script标签写在标签前⾯使⽤window.onload=function(){var box=document.querySelector('.box');console.log(box);}window.onscroll=function(){var btn=document.querySelector('.btn');console.log(window.scrollY);console.log("cc");if (window.scrollY>700){console.log("bb");btn.style.display='block';btn.style.background="black"}if (window.scrollY<=700){btn.style.display='none';}}</script><div class='box'></div><div class="btn"></div>2)只触发⼀次<style>.box{width:100px;height:100px;background:red;position:absolute;top: 0;left: 0;}.btn{width: 50px;height: 50px;background: red;display:none;position: fixed;top: 200px;right: 100px;}</style><div class="box"></div>var isshow=false;window.onscroll=function(){var btn=document.querySelector('.btn'); console.log(window.scrollY);// console.log("cc");if (window.scrollY>700){if (!isshow){console.log("bb");btn.style.display='none';btn.style.background="black";isshow=true;}}else {if (isshow){btn.style.display="block";isshow=false}}}。
Java Robot 类自动完成一些键盘或鼠标的动作小例子
Java Robot 类自动完成一些键盘或鼠标的动作小例子//程序流程:模拟鼠标左键点击开始-->运行-->CMD-->DIR-->CLS-->EXIT//模拟右键点击移动到右下角-->右键点击-->调整日期和时间-->退出import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;//Test.javapublic class Test {public static void main(String[] args) throws Exception {final Robot rb = new Robot();new Thread(){public void run(){rb.delay(2000);//回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预.\n如果不能正常执行程序,请先关闭输入法");//设置开始菜单的大概位置int x = 40;int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;//鼠标移动到开始菜单,rb.mouseMove(x,y);rb.delay(500);//单击三次开始菜单for(inti=0; i<3; i++)pressMouse(rb,InputEvent.BUTTON1_MASK,500);rb.delay(1000);//运行CMD命令 r cmd enterint[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.V K_ENTER,};pressKeys(rb,ks,500);rb.mouseMove(400,400);rb.delay(500);//运行DIR命令 dir enterks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER}; pressKeys(rb,ks,500);rb.delay(1000);//运行CLS命令cls enterks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER}; pressKeys(rb,ks,500);rb.delay(1000);//运行EXIT命令exit enterks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent .VK_ENTER};pressKeys(rb,ks,500);rb.delay(1000);//右键测试x=Toolkit.getDefaultToolkit().getScreenSize().width-10;rb.mouseMove(x, y);//如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标pressMouse(rb,InputEvent.BUTTON3_MASK,500);//显示日期调整对话框apressKeys(rb,newint[]{KeyEvent.VK_A},1000);rb.delay(2000);pressKeys(rb,newint[]{KeyEvent.VK_ESCAPE},0);rb.delay(1000);new Thread(){public void run(){rb.delay(1000);//回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null,"演示完毕!");}//鼠标单击,要双击就连续调用private static void pressMouse(Robot r,intm,int delay){r.mousePress(m);r.delay(10);r.mouseRelease(m);r.delay(delay);}//键盘输入private static void pressKeys(Robot r,int[] ks,int delay){ for(inti=0; i<ks.length; i++){r.keyPress(ks[i]);r.delay(10);r.keyRelease(ks[i]);r.delay(delay);}}}。
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事件处理机制
JAVA事件处理机制JAVA事件处理机制是指在JAVA编程中对事件进行监听和响应的一种机制。
在JAVA中,事件是指用户在程序运行过程中进行的各种操作,如鼠标点击、键盘输入、窗口关闭等。
通过事件处理机制,程序可以在特定事件发生时触发相应的操作,从而实现与用户的交互。
在JAVA中,事件处理机制主要涉及到以下几个方面:事件源、事件监听器、事件对象和事件处理器。
事件源是指能够触发事件的对象,例如按钮、文本框等;事件监听器是指用来监听事件的对象,它实现了相应的事件监听接口;事件对象是指封装了事件源和事件信息的对象,它包含了发生事件的相关属性;事件处理器是指在事件被触发时需要执行的操作,可以通过事件监听器来定义。
事件处理机制通常包括以下几个步骤:1.创建事件源对象:例如创建一个按钮对象。
2.创建事件监听器对象:实现相应的事件监听接口,并重写事件处理方法。
3.将事件监听器对象注册到事件源对象中:通过调用事件源对象的方法将事件监听器对象注册到事件源对象中,使其能够监听事件源对象的事件。
4.触发事件:用户进行相应操作后,事件源对象会触发相应的事件。
5.事件源对象通知事件监听器对象:事件源对象会调用事件监听器对象的相应方法,将事件对象作为参数传递给事件监听器对象。
6.事件监听器对象执行操作:事件监听器对象接收到事件对象后,根据事件对象中的信息执行相应的操作。
通过事件处理机制,可以实现丰富的用户交互功能。
例如,在一个图形界面程序中,用户点击按钮时,可以触发按钮的点击事件,然后执行相应的操作,如弹出对话框、刷新界面等。
又如,用户在文本框中输入内容时,可以触发文本框的输入事件,然后进行相应的校验、处理等操作。
JAVA提供了丰富的事件监听接口和类库,使得事件处理变得更加方便。
例如,对于鼠标事件,可以使用MouseListener接口和MouseAdapter适配器类来实现对鼠标事件的监听和处理。
对于键盘事件,可以使用KeyListener接口和KeyAdapter适配器类来实现对键盘事件的监听和处理。
java listener几个功能例子 -回复
java listener几个功能例子-回复Java Listener 几个功能例子Java是一种功能强大的编程语言,旨在为开发人员提供灵活且可靠的解决方案。
其中一个重要的特性是监听器(Listener),它允许程序在特定事件发生时做出相应的反应。
本文将介绍几个常见的Java Listener功能例子,并逐步演示其实现过程。
写这篇文章时,将依次介绍以下功能例子:1. 窗口监听器(WindowListener): 当用户打开、关闭或最小化窗口时触发的事件。
2. 鼠标监听器(MouseListener): 当用户在GUI界面上进行鼠标点击操作时触发的事件。
3. 键盘监听器(KeyListener): 当用户在GUI界面上按下键盘按键时触发的事件。
下面将逐一介绍这些功能例子,并提供详细的实现步骤。
1. 窗口监听器(WindowListener)窗口监听器允许我们在窗口打开、关闭或最小化等事件发生时做出相应的反应。
要实现窗口监听器,我们可以创建一个实现WindowListener接口的类,并重写其方法。
首先,我们需要创建一个GUI窗口,可以使用Swing或JavaFX框架。
接下来,创建一个窗口监听器的实现类。
这个类应该继承WindowAdapter,它提供了对WindowListener接口的默认实现。
在窗口监听器实现类中,我们可以重写以下方法来响应窗口事件:- windowOpened(WindowEvent e):窗口打开时触发的事件。
- windowClosing(WindowEvent e):用户关闭窗口时触发的事件。
- windowIconified(WindowEvent e):窗口最小化时触发的事件。
以窗口关闭事件为例,可以按照以下步骤实现:1. 创建窗口监听器实现类,并重写windowClosing方法。
2. 在windowClosing方法中添加关闭窗口的逻辑,例如释放资源或保存数据。
java事件处理机制
2
事件处理机制
事件及其处理机制
如果用户在用户界面执行了一个动作,这将导致一个事件的发生。 事件是描述用户所执行的一个操作,所产生的一个行为。 三个主要概念:事件、事件源、事件处理方法
事件的接口及方法
事件监听器(或谓监视器或处理者)通常是一个类,每一个事件类都有一个对应的事件处理 接口。例如,处理键盘输入事件“KeyEvent”类的接口为“KeyListener” 接口,监听器是 接口,又称监听器接口。
当使用CTRL+C复合键时,下面的逻辑表达式为true :
e.getModifiers()==InputEvent.CTRL_MASK&&e.getKeyCode()==KeyEvent. VK_C 【例8-11】键盘事件的创建与响应实例。
1.3 文本事件
文本框TextField或文本域TextArea信息发生改变时,产生TextEvent文本事 件。要使程序能响应并处理TextEvent事件,要实现TextListener接口,应将 TextEvent事件注册给监听器:public void addTextListener(Listener),并实 现TextListener接口中的textValueChanged(TextEvent)方法。 【例8-13】文本事件程序设计实例。
2021/12/17
图形用户界面编程
3
2021/12/17
图形用户界面编程
4
事件Байду номын сангаас理机制
3. 事件处理主要步骤
通常,处理的主要步骤如下(设表8-11所示某事件为XxxEvent): 选择组件作为事件源,不同类型的组件会产生特定类型的事件。 定义要接收并处理某种类型的事件XxxEvent,注册相应的事件监听器类。 通过调用组件方法:eventSourceObject.addXxxListener(XxxListener)方 法向组件注册事件监听器。
Java按键事件KeyEvent
Java按键事件KeyEvent按键事件可以利⽤键盘来控制和执⾏⼀些动作,或者从键盘上获取输⼊,只要按下,释放⼀个键或者在⼀个组件上敲击,就会触发按键事件。
KeyEvent对象描述事件的特性(按下,放开,或者敲击⼀个键)和对应的值。
java提供KeyListener接⼝处理按键事件。
当按下⼀个键时会调⽤KeyPressed处理器,当松开⼀个键时会调⽤KeyReleased处理器,当输⼊⼀个统⼀编码时会调⽤KeyTyped处理器。
如果这个键不是统⼀码(如功能键,修改键,动作键和控制键)每个按键事件有⼀个相关的按键字符和按键代码,分别由KeyEvent中的getKeyChar()和getKeyCode()⽅法返回getKeyChar(): char 返回这个事件中和键相关的字符getKeyCode(): int 返回这个事件中和键相关的整数键keyPressed(e: KeyEvent) 在源组件上按下⼀个键后被调⽤KeyReleased(e: KeyEvent) 在源组件上释放⼀个键后被调⽤KeyTyped(e: KeyEvent) 在源组件上按下⼀个键然后释放该键后被调⽤按键常量VK_HOME Home键 VK_CONTROL 控制键VK_END End键 VK_SHIFT shift键VK_PGUP page up键 VK_BACK_SPACE 退格键VK_PGDN page down键 VK_CAPS_LOCK ⼤⼩写锁定键VK_UP 上箭头 VK_NUM_LOCK ⼩键盘锁定键VK_DOWN 下箭头 VK_ENTER 回车键VK_LEFT 左箭头 VK_UNDEFINED 未知键VK_RIGHT 右箭头 VK_F1--VK_F12 F1 -- F12VK_ESCAPE Esc键 VK_0 --VK_9 0 --- 9VK_TAB Tab键 VK_A --VK_Z A----ZgetKeyCode()返回定义在表中的值getKeyChar()返回输⼊的字符1import java.awt.*;2import java.awt.event.*;3import javax.swing.*;45public class KeyEventDemo extends JFrame{6private KeyboardPanel keyboardPanel = new KeyboardPanel();78public KeyEventDemo(){9 add( keyboardPanel);1011 keyboardPanel.setFocusable(true);1213 }1415public static void main(String[] args){16 KeyEventDemo frame = new KeyEventDemo();17 frame.setTitle( "KeyEventDemo");18 frame.setSize(300,300);19 frame.setLocationRelativeTo( null);20 frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);21 frame.setVisible( true);2223 }2425static class KeyboardPanel extends JPanel{26private int x = 100;27private int y = 100;28private char KeyChar = 'A' ;2930public KeyboardPanel(){31 addKeyListener( new KeyAdapter(){32public void keyPressed(KeyEvent e){33switch(e.getKeyCode()){34case KeyEvent.VK_DOWN: y += 10;break;35case KeyEvent.VK_UP: y -= 10; break;36case keyEvent.VK_LEFT: x -= 10; break;37case KeyEvent.VK_RIGHT: x += 10; break;38default: keyChar = e.getKeyChar();39 }4041 repaint();42 }43 });44 }4546protected void paintComponent(Graphics g){47super.paintComponent(g);4849 g.setFont( new Font("TimesRoman" ,Font.PLAIN,24));50 g.drawString(String. valueOf(KeyChar), x, y);51 }52 }53 }。
Java使用Robot类模拟鼠标、键盘事件
Java使⽤Robot类模拟⿏标、键盘事件Robot类⽤于模拟⿏标、键盘事件,⽣成本机系统输⼊事件。
Robot 的主要⽤于⾃动化、⾃运⾏的程序和其他需要⾃动控制⿏标和键盘的程序相当于实际操作的效果,不仅仅只是⽣成对应的⿏标、键盘事件。
⽐如Robot.mouseMove() 将实际移动⿏标光标,⽽不是只⽣成⿏标移动事件。
实现的是本机的全局模拟,不仅仅局限于写的程序和IDERobot类常⽤⽅法:void delay (int ms) 睡眠指定的时间(类似于线程中sleep)void keyPress(int keycode)按下指定的键void keyRelease(int keycode)释放指定的键void mousePress(int buttons)按下⼀个或多个⿏标按键void mouseRelease(int buttons)释放⼀个活多个⿏标按键void mouseMove(int x,int y)将⿏标移动到给定的屏幕坐标上void mouseWheel(int wheelAmt)滚动⿏标滑轮实例:1package my_package;23import java.awt.*;4import java.awt.event.InputEvent;5import java.awt.event.KeyEvent;678/**9 * 利⽤Robot实现⾃动清屏10*/11public class Test {12public static void main(String[] args) throws AWTException {13 System.out.println("ok");14 Robot robot = new Robot();1516//将⿏标移到控制台区域17 robot.mouseMove(300,600);1819//单击右键20 robot.mousePress(InputEvent.BUTTON3_DOWN_MASK);21 robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK);2223//按CTRL+⼩键盘的数字0,实现清屏。
Java中的鼠标事件和键盘事件
Example18_9/10.java
键盘事件
键盘事件:
按下 释放 敲击键盘上一个键
事件源获得监视器的方法是 addKeyListener(监视器) addKeyListener(监视器) 处理事件源发生事件的接口是 KeyListener,其中方法: KeyListener,其中方法:
keyPressed(KeyEvent e) keyTyped(KeyEvent e):键被按下又释 e):键被按下又释 放时被调用 keyReleased(keyEvent e)
使用MouseListener接口处理鼠 使用MouseListener接口处理鼠 标事件
事件源获得监视器的方法是 addMouseListener(监视器) addMouseListener(监视器) 处理事件源发生事件的接口是 MouseListener,其中方法: MouseListener,其中方法:
mouseDragged(MouseEvent):负责处理鼠标拖 mouseDragged(MouseEvent):负责处理鼠标拖 动事件 MouseMoved(MouseEvent) :负责处理鼠标移动 事件
Example18_6/7.java
控制鼠标的指针形状
可使用setCursor方法,如设置成漏斗: 可使用setCursor方法,如设置成漏斗:
Example18_1/2/3/4/5.java
使用MouseMotionListener接口 使用MouseMotionListener接口 处理鼠标事件
事件源发生的鼠标事件:
拖动鼠标 鼠标移动(鼠标键不按下)
鼠标事件的类型是MouseEvent 鼠标事件的类型是MouseEvent 事件源获得监视器的方法是 addMouseMotionListener(监视器) addMouseMotionListener(监视器) 处理事件源发生事件的接口是 MouseMotionListener,其中方法: MouseMotionListener,其中方法:
Java 中的鼠标事件
18.4 键盘事件
当按下、释放或敲击键盘上一个键时就发生了键盘事件,在Javal.2事件模式 中,必须要有发生事件的事件源。当一个组件处于激活状态时,敲击键盘上 一个键就导致这个组件上发生了键盘事件。 事件源使用addKeyListener(监视器)方法获得监视器。 监视器是一个对象,创建该对象的类必须实现接口KeyListener。接口 KeyListener中有3个方法: public void keyPressed(KeyEvent e) public void keyTyped(KeyEvent e) public void KeyReleased(KeyEvent e) 当你按下键盘上某个键时,监视器就会发现,然后方法keyPressed方法会自 动执行,并且KeyEvet类自动创建一个对象传递给方法keyPressed中的参数e。 方法keyTyped是keyPressed和keyReleased方法的组合,当键被按下又释放时, keyTyped方法被调用。用KeyEvent类的public int getKeyCode()方法,可以 判断哪个键被按下、敲击或释放,getKeyCode方法返回一个键码值(如表所 示)。也可以用KeyEvent类的public char getKeyChar()判断哪个键被按下、 敲击或释放,getKeyChar方法返回键的字符。
在下面例子mouse2.java中,当在画布上按下鼠标左键时,在鼠标位置处绘制 一个圆;当按下鼠标右键时,在鼠标位置处绘制一个矩形:当鼠标退出画布 时,清除绘制的全部图形。 下面的例子mouse3.java分别监视按钮、文本框和容器上的鼠标事件,当发生 鼠标事件时,获取鼠标的坐标值,注意,事件源的坐标系的左上角是坐标源 点
18.2 使用MouseMotionListener接口处理鼠标事件
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键盘鼠标监听
键盘监听器和鼠标监听器键盘监听器键盘监听器KeyListener用来监听键盘事件。
键盘事件有三种:KEY_PRESSED键按下了,KEY_RELEASED键松开了,KEY_TYPED键按过了。
每个键都有一个键码,普通键的键码就是ASCII码。
键码可通过int getKeyCode()方法获得。
Java设置了一种“虚拟键码”(Virtual Key Code),用“VK_”作为前缀,例如VK_G。
下面是某些特殊键的虚拟键码。
键码含义键码含义VK_LEFT/VK_RIGHT 左右方向键VK_CONTROL Ctrl键VK_KP_UP 小键盘向上VK_ATL Alt键VK_PAUSE 暂停键VK_SHIFT Shift键VK_NUMBER0 小键盘数字0 VK_F1 功能键F1VK_0 数字键0 VK_B 字母键B虚拟键码对应的是键位,不区分大小写。
要想知道大小写还必须查看修饰键(modifier key)。
这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONTROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。
监听器KeyListener有三个方法keyPressed(KeyEventevt),keyReleased(KeyEvent evt),keyTyped(KeyEvent evt),分别用于相应事件发生后的处理。
下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。
除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKeyText(code)方法得到输入的字符串。
用isShiftDown()判断shift键是否被按下等。
当按下Control键时getKeyText返回的是“ctrl",Alt和Shift 也类似。
Eclipse中常用的操作的英文单词及翻译
Eclipse中常用的操作单词1. Existing Project into Workspace 现有的工程引入工作空间(加载工程) File 文件New 新建Project 工程Folder 文件夹Import 引入(加载&导入)Run As 运行Application 应用程序copy 复制paste 粘贴Delete 删除properties 属性Java Build Path 建立java路径Libraries 库Add Library 添加库User Library 用户库Next 下一步User Libraries 用户库New 新建JDBC-ODBC 桥2. 需掌握的单词overload 重载override 重写(覆盖)3. 程序编写时常用的单词package 指定文件夹class 类static 静态类型true 真false 假String 字符串对象(也是一种数据类型)extends 继承this 当前对象引用super 父类对象引用Math.random() 随机数interface 接口implements 继承接口throw 抛出throws 抛出try 尝试catch 捕获Exception 异常Separator 分割线4. 基本数据类型(返回值类型中的一部分)英文类型默认值封装类byte 字节型0b Byte char 字符型'\u0000' Character short 短整型0 Shortint 整型0 Integer long 长整型0 Long float 单精度浮点型Floatdouble 双精度浮点型Double boolean 布尔型flase Boolean String 字符串null String5. 访问控制修饰符public 公有的protected 公共的(保护的)private 私有的6. 类修饰符final 最终new 新的abstract 抽象finally 最终的7. 逻辑关键字if 如果else 否则switch 开关case 事件default 默认for (循环)while (循环)do-while (循环)continue 继续break 打破8. 类ArrayList 数组集合add(Object); 添加数据get(int); 获得数据Thread 线程Runnable 可捕获的9. 控制数据库常用加载数据库驱动程序Connection 数据库连接对象Statement 数据库操纵对象ResultSet 数据库结果集对象close 关闭DriverManager 驱动管理器localhost 本地主机executeQuery 执行命令executeUpdate 执行更新SQLException SQL数据库异常ClassNotFoundException 类没有被找到异常view 视图trigger 触发器proc 存储过程removeAll 移除所有rs.first() 游标移动到第一条记录st() 游标移动到最后一条记录rs.getRow() 获得当前的行号rs.absolute(i) 定位游标top 最前JavaBean 存放数据10. 窗体(知道即可)show 展示设置标题this.setSize(500,400); 窗体大小this.setLocation(260,150); 窗体初始位置this.show(); 显示窗体this.setLocationRelativeTo(null); 居中this.setDefaultCloseOperation(3); 关闭按扭起作用this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 关闭按扭起作用JLabel lbl = new JLabel(new ImageIcon("1.gif")); 图片标签getContentPane 获得窗体的内部窗格setBackground(Color.BLUE) 设置背景颜色setResizable() 设置是否能最大化()内填true或falsesetAlwaysOnTop() 窗口在最顶端()内填true或falseFont 字体showMessageDialog 弹出对话框====Word行业资料分享--可编辑版本--双击可删====append 追加valueChanged 改变数值requestFocus 获得焦点selectAll 全选setText 设置文本域内容getText 获得文本域内容setEnabled() 设置控件是否可用()内填true或falsesetAccelerator 设置加速器KeyStroke 敲击键盘getKeyStroke 获得所敲击的键盘InputEvent 输入事件getDocument 获得文件addUndoableEditListener 添加撤销监听器SimpleDateFormat 简易日期格式setLineWrap 设置行距addEdit 添加编辑getEdit 获得编辑setBorder 设置边框Factory 工厂createTitledBorder 创建标题边框setVisible() 设置视窗是否隐藏()内填true或false setCursor 设置指针isPopupTrigger 确定点鼠标击右键getSelectedValue 获得选中的值toString 返回字符串insertIcon 插入图标getActionCommand 获得动作命令getKeyCode 获得键盘码getIcon 获得标签setIcon 设置标签getSource 获得所选charAt() 查找指定下标所对应的字符indexOf() 查找某一字符串,首次出现的位置(从前向后)lastIndexOf() 查找某一字符串,首次出现的位置(从后向前)length() 返回字符串长度equals() 比较两个字符串toUpperCase() 转为大写toLowerCase() 转为小写split() 分割字符串replace() 替换.addRow(Object[]) 添加一条记录setRowCount(0) 清空表模型repaint 重绘获得下拉框所选择的内容ComboBox.addItem(rs.getString(1)) 重新添加下拉框内容g.setColor(Color.RED) 设置画笔颜色g.setFont(new Font("隶书",Font.BOLD,30)) 设置画笔字体g.drawString("早晨好",100,200) 画字符串g.drawLine(100,100,500,500) 画线g.drawOval(200,200,300,150) 画椭圆g.fillOval(200,200,300,150) 填充椭圆g.drawRect(200,200,300,150) 画矩形this.setUndecorated(true) 去除窗体边框Thread.currentThread() 获得当前正在运行的线程Graphics 画笔t.suspend() 线程挂起t.resume() 恢复线程11. 布局FlowLayout 流式布局LEFT 左RIGHT 右BorderLayout 边界布局EAST 东SOUTH 南WEST 西NORTH 北CENTER 中GridLayout 网格部局12. (选择记忆)Container 容器JPanel 面板JFrame 窗体JButton 按扭JLabel 标签JTextField 文本域(单行的文本框)JTextArea 文本区JPasswordField 密码域ButtonGroup 按扭组(单选)JRadioButton 单选按扭JCheckBox 多选按扭JComboBox 下拉框JList 下拉列表ImageIcon 图片JMenuBar 菜单工具栏JMenu 菜单项JMenuItem 子菜单项JCheckBoxMenuItem 多选按钮菜单工具栏JRadioButtonMenuItem 单选按钮菜单工具栏JScrollPane 滚动面板JTextPane 文本面板JPopupMenu 弹出菜单JProgressBar 进度条DefaultTableModel 默认的表模型JTable 表格ActionListener 监听器ActionEvent 动作事件actionPerformed 动作演示KeyListener 键盘监听器KeyEvent 键盘事件keyPressed 按下键盘keyReleased 释放键盘keyTyped 点击键盘MouseListener 鼠标监听器MouseEvent 鼠标事件mouseClicked 鼠标单击事件mouseEntered 鼠标移入事件mouseExited 鼠标离开事件mousePressed 按下鼠标事件mouseReleased 释放鼠标事件MouseMotionListener 鼠标监听器mouseDragged 拖拽鼠标mouseMoved 移动鼠标ListSelectionListener 下拉列表监听器ListSelectionEvent 下拉列表选择事件JOptionPane 有选项的面板UndoableEditListener 撤消监听器UndoableEditEvent 撤消事件undoableEditHappened 撤消13. 包java.awt.*; ng.*; java.util.*; java.text.*; javax.swing.*; java.awt.event.*; import java.sql.*; javax.swing.undo.*; java.swing.table.*; javax.swing.event.*;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用MouseListener接口处理鼠 标事件
事件源发生的鼠标事件有:
按下鼠标键 释放鼠标键 击鼠标键 鼠标进入 鼠标退出
鼠标事件的类型是MouseEvent,其 中几个重要的方法:
getX(),getY():获取鼠标的坐标位置 getModifiers():获取鼠标的左或右键 getClickCount():获取鼠标被点击的次数
Example18_11/12/13.java
按下 释放 敲击键盘上一个键
事件源获得监视器的方法是 addKeyListener(监视器) 处理事件源发生事件的接口是 KeyListener,其中方法:
keyPressed(KeyEvent e) keyTyped(KeyEvent e):键被按下又释 放时被调用 keyReleased(keyEvent e)
常数 图标 常数
ห้องสมุดไป่ตู้
图标
Example18_8.java
用鼠标自由作画
想法:
只要能用鼠标画点就可以用鼠标自 由作画
drawLine(int
x1,int y1,int x2,int y2) 当直线的起点和终点相同,就画出了 一个点
Example18_9/10.java
键盘事件
键盘事件:
使用MouseListener接口处理鼠 标事件
事件源获得监视器的方法是 addMouseListener(监视器) 处理事件源发生事件的接口是 MouseListener,其中方法:
MousePressed(MouseEvent):负责处理鼠标按 下事件 MouseReleased(MouseEvent) :负责处理鼠标 释放事件 MouseEntered(MouseEvent) :负责处理鼠标进 入容器事件 MouseExited(MouseEvent) :负责处理鼠标离开 MouseClicked(MouseEvent) :负责处理点击鼠 标事件
Example18_1/2/3/4/5.java
使用MouseMotionListener接口 处理鼠标事件
事件源发生的鼠标事件:
拖动鼠标 鼠标移动(鼠标键不按下)
鼠标事件的类型是MouseEvent 事件源获得监视器的方法是 addMouseMotionListener(监视器) 处理事件源发生事件的接口是 MouseMotionListener,其中方法:
GUI编程
Java中的鼠标事件和键盘事件
发生鼠标事件的事件源往往是一 个容器,当鼠标进入容器、离开 容器,或者在容器中单击鼠标、 拖动鼠标时都发生了鼠标事件
主要内容
使用MouseListener接口处理鼠 标事件 使用MouseMotionListener接口 处理鼠标事件 控制鼠标的指针形状 用鼠标自由作画 键盘事件
mouseDragged(MouseEvent):负责处理鼠标拖 动事件 MouseMoved(MouseEvent) :负责处理鼠标移动 事件
Example18_6/7.java
控制鼠标的指针形状
可使用setCursor方法,如设置成漏斗:
setCursor(Cursor.getPredefinedCursor(Cursor.W AIT_CURSOR))