Java资料:Swing中的事件处理详细资料

监听器:ActionListener

方 法:actionPerformed

事 件:ActionEvent

● String getActionCommand()

actioncommand是控件内部的一个字符串,用于标识控件的状态。

此函数可以取得控件的状态,从而决定到底该做什么。

● int getModifiers()

取得“产生此事件时,用户同时按下的组合键”

● long getWhen()

取得“产生此事件时的时间戳”

事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期

------------------------------------------------------------------

监听器:AdjustmentListener

方 法:adjustmentValueChanged

事 件:AdjustmentEvent

● Adjustable getAdjustable()

adjustable是一个接口,各种滚动条都实现了这个接口。

● int getAdjustmentType()

取得滚动类型,共有UNIT_INCREMENT,UNIT_DECREMENT,BLOCK_INCREMENT,BLOCK_DECREMENT,TRACK共5种类型

● int getValue()

取得滚动滑块的当前值

事件产生原因:滚动条的滚动

------------------------------------------------------------------

监听器:ItemListener

方 法:itemStateChanged

事 件:ItemEvent

● Objedt getItem()

取得被选中的元素。注意,返回值是Object,还应该进行强制类型转换。

● ItemSelectable getItemSelectable()

ItemSelectable是一个接口,代表那些包含了n个可供选择的子元素的对象。此方法返回产生此事件的对象。此方法的作用主要在于,如果一个列表框是允许多选的,那么上面的方法就不好用了,应该用此方法得到列表对象,再取得被选中的多个元素。

● int getStateChange()

取得选择的状态,是SELECTED还是DESELECTED

事件产生原因:各种按钮的点击,列表框的选择

-----------------------------------------------------------------

监听器:FocusListener

方 法:focusGained、focusLost

事 件:FocusEvent

● Component getOppositeComponent()

得到“参与焦点变换的”另一个对象。如果是焦点取得事件,则返回之前拥有焦点的对象;如果是焦点失去事件,则返回得到焦点的对象。若焦点转移到另外一个应用程序,返回null

● boolean isTemporary()

焦点是临时性转移还是永久转移。临时性转移:用鼠标拖动窗口或者窗口变为非激活状态。其他为永久性转移。

事件产生原因:各种组件的焦点变化

------------------------------------------------------------------

监听器:KeyListener

方 法:keyPressed、keyReleased、keyTyped

事 件:KeyEvent

● char getKeyChar()

此方法只在keytyped中有效,返回按下的字符。比如按下shift+a,返回'A'

● int getKeyCode()

取得键盘上按键的整数编码。请注意,是键盘上的按键,比如F1,Ctrl,Home键等等,都有相应编码。不支持组合键,也就是说“Shift+a”和“a”返回同样的内容,都是小写a的ASCII码。但是大键盘的数字键和小键盘的数字键返回内容不同。

● static String getKeyModifiersText(int modifiers)

将掩码转化为字符串,比如“Ctrl”,“Ctrl+Shift”等。注意它是static方法

● static String getKeyText(int keyCode)

返回keyCode代表的按钮的名字,比如"Home","F1"等。注意它是statci方法

事件产生原因:在各种组件上敲击键盘

----------------------------------------------------------------

监听器:MouseListener

方 法:mouseClicked、mousePressed、mouseReleased

mouseEntered、mouseExited

事 件:MouseEvent

● Point getLocationOnScreen()

返回鼠标相对于显示屏幕的绝对坐标(java 1.6版提供)

● int getXOnScreen()

返回鼠标相对于显示屏幕的X的绝对坐标(java 1.6版提供)

● int getYOnScreen()

返回鼠标相对于显示屏幕的Y的绝对坐标(java 1.6版提供)

● Point getPoint()

返回鼠标相对于组件的绝对坐标

● int getX()

返回鼠标相对于组件的X的绝对坐标

● int getY()

返回鼠标相对于组件的Y的绝对坐标

● void translatePoint(int x, int y)

给鼠标的做用点加上一个偏移量。比如2个参数分别是10, 20,你要用鼠标画直线,当你鼠标指向100,100开始画,实际上的线是画在110,120处

● int getClickCount()

产生此事件时鼠标共点击了多少下(单击、双击、三击……)

● int getButton()

产生此事件时,鼠标的哪个键被点击了:NOBUTTON, BUTTON1, BUTTON2 或者 BUTTON3

● boolean isPopupTrigger()

是否能够触发一个弹出式菜单。由于各平台触发弹出式菜单的情况不一样,因此应该在mousePressed 和 mouseReleased中都检测一下

事件产生原因:在任何组件上点击鼠标、将光标移动进来或出去

---------------------------------------------------------------------

监听器:MouseMotionListener

方 法:mouseDragged、mouseMoved

事 件:MouseEvent

同上!

事件产生原因:在任何组件上移动鼠标

---------------------------------------------------------------------

监听器:MouseWheelListener

方 法:mouseWheelMoved

事 件:MouseWheelEvent

● int getScrollType()

滚动的类型,是按块滚动WHEEL_BLOCK_SCROLL还是按单位滚动WHEEL_UNIT_SCROLL

● int getScrollAmount()

返回为相应此事件应该滚动的单位数。此方法有效的前提是按单位滚动。

● int getWheelRotation()

鼠标滚轮滚动过程中”咔嚓“声的数目。向上滚为负值,向下滚为正值

事件产生原因:在任何组件上滚动鼠标中键

--------------------------------------------------------------------

监听器:WindowListener

方 法:windowOpened、windowClosing、windowClosed、windowIconified

windowDeiconified、windowActivated、windowDeactivated

事 件:WindowEvent

● Window getWindow()

返回发生此事件的window对象

● Window getOppositeWindow()

若发生了焦点转移,返回另一个参与此事件的window对象,或者null

● int getOldState()

窗口变化前的状态:NORMAL、ICONIFIED、MAXIMIZED_BOTH

● int getNewState()

窗口变化后的状态

事件产生原因:窗口发生变化

----------------------------------------------------------------------

监听器:WindowFocusListener

方 法:windowGainedFocus、windowLostFocus

事 件:WindowEvent

同上!

事件产生原因:窗口得到或失去焦点

------------------------------------------------------------------------

监听器:WindowStateListener

方 法:WindowStateChanged

事 件:WindowEvent

同上!

事件产生原因:窗口状态改变

-------------------------------------------------------------------------

时间: 2024-10-31 10:11:32

Java资料:Swing中的事件处理详细资料的相关文章

Java GUI编程中的事件处理机制详解

1)事件:用户对程序的某一种功能性操作. Java中的事件主要有两种: 1.组件类事件 componentEvent.ContainerEvent.WindowEvent.FocusEvent.PaintEvent.MouseEvent共六大类, 它们均是当组件的状态发生变化时产生. 2.动作类事件 ActionEvent.TextEvent.AdjustmentEvent.ItemEvent共四类. 它们均对应用户的某一种功能性操作动作. Java中的事件类都包含在JDK的 Java.awt.

Swing中的事件处理详解

监听器:ActionListener 方 法:actionPerformed 事 件:ActionEvent ● String getActionCommand() actioncommand是控件内部的一个字符串,用于标识控件的状态. 此函数可以取得控件的状态,从而决定到底该做什么. ● int getModifiers() 取得"产生此事件时,用户同时按下的组合键" ● long getWhen() 取得"产生此事件时的时间戳" 事件产生原因:点击按钮,在列表框

java swing 中事件处理读取参数问题

问题描述 java swing 中事件处理读取参数问题 在MyFrame类中有一个static double[][]二维数组,添加button按钮事件生成一新的类似于Excel窗口,输入数据并存入MyFrame的静态数组中.但是在MyFrame中读取这个数组时总是不能正确地读出输入的数据,而是未初始化时的空数组.请问这是什么问题?应该怎么读呢.

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re

Java的Swing编程中使用SwingWorker线程模式及顶层容器_java

使用SwingWorker线程模式 谨慎地使用并发机制对Swing开发人员来说非常重要.一个好的Swing程序使用并发机制来创建不会失去响应的用户接口-不管是什么样的用户交互,程序总能够对其给出响应.创建一个有响应的程序,开发人员必须学会如何在Swing框架中使用多线程. 一个Swing开发人员将会与下面几类线程打交道: (1)Initial threads(初始线程),此类线程将执行初始化应用代码. (2)The event dispatch thread(事件派发线程),所有的事件处理代码在

Java Swing中两种设置背景图(容器图片)

在java swing中需要为容器添加图片,或者背景图片. 提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel 1.JPanel(源代码) [java] view plaincopy package oo;      import java.awt.Graphics;   import java.awt.Image;   import java.io.File;      import javax.swing.ImageIcon;   import javax.swing.JF

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

按钮-自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙!

问题描述 自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙! /*题目是这样的:创建一个窗体在其中摆放两个内容面板对两个面板进行边框个性化设置.初始状态为第二个面板不可见,当单击第一个面板中的"打开"按钮时,第二个面板即可见:当单击第一个面板中的"关闭"按钮时,第二个面板消失. 以下是我结合书本写的代码,不知道为什么运行不了???*/import javax.swing.*;import java.awt.*;impor

Java swing中Jlist怎么判断里面是否有数据?谢谢

问题描述 Java swing中Jlist怎么判断里面是否有数据?谢谢 因为布局需要,所有我在开始就new了: private DefaultListModel<String> listModel = new DefaultListModel<>();private JList<String> buttonList = new JList<>(listModel); 中间是监听数字按钮,并动态的将按钮上的值放入buttonList. 最后要监听一个MC按钮,