java 事件类和事件监听器

java  事件类和事件监听器
java  事件类和事件监听器

java 事件类和事件监听器

由于各种组件可能发生事件的不同,将事件进行了分门别类的归纳,封装成为各个“事件类”,例如ActionEvent 、ItemEvent 和MouseEvent 等。

1.事件类

与AWT 有关的所有事件类由java.awt.AWTEvent 类派生,它是EventObject 类的子类,事件类的层次结构如图10-4所示。

图10-4 事件类的层次结构图

在EventObject 类中,有一个GetSource()方法,用来返回触发事件的对象。ComponentEvent 类提供了一个getComponent()方法,用来返回触发事件的组件。这两个方法都可以实现返回一个事件源对象。

AWT 事件分为两大类:低级事件和高级事件。

低级事件是指基于组件和容器的事件,例如鼠标进入组件、单击组件等。 ●

ComponentEvent 组件事件,发生于组件大小改变、移动、显示或者隐藏时。 ●

ContainerEvent 容器事件,发生于添加或者删除一个组件时。 ●

WindowEvent 窗口事件,发生于窗口被激活、屏蔽、最小化、最大化或者关闭时。 ●

KeyEvent 键盘事件,发生于键盘上的一个键被按下或者释放时。 ●

MouseEvent 鼠标事件,发生于鼠标移动、按下、释放和拖动时。 ● FocusEvent 焦点事件,发生于组件获得焦点或者失去焦点时。

高级事件是基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类,如在TextField

中按Enter 键会触发ActionEvent 事件。 ●

ActionEvent 动作事件,发生于相应按钮单击、菜单选择、列表框选择、在文本框中按回车键时。 ●

AdjustmentEvent 调整事件,发生于用户在滚动条上移动滑块时。 ●

ItemEvent 项目事件,发生于用户从一组选择框或者列表框中进行选择时。 ● TextEvent 文本事件,发生于文本框或者文本域中的内容发生改变时。

Activiti 监听器的配置使用

Activiti 监听器的配置使用 一)流程监听器的配置 此监听器的作用是记录流程的启动和结束事件日志,详细参考类 cn.bc.workflow.activiti.delegate.ProcessLogListener 用Activiti Designer打开流程图,点击空白处,在Properties的Listeners中如下配置流程的start和end两个事件: 二)任务监听器的配置 此监听器的作用是记录任务的创建、分派和完成的事件日志,详细参考类 cn.bc.workflow.activiti.delegate.TaskLogListener 用Activiti Designer打开流程图,点击要配置的任务节点,在Properties的Listeners中如下配置任务的事件监听:

如下是自动将任务分配到岗位或岗位内用户的任务监听器的配置: 详见类cn.bc.workflow.activiti.delegate.Assign2GroupUserListener,监听器在流程图中需要配置为"java class"类型,Fields参数中有两种配置方式:1)岗位名称+保存组织ID的流程变量名(全局变量),2)岗位编码。 监听器会根据配置方式先获取岗位,然后自动获取岗位内的用户信息,如果岗位内只有一个用户,就直接将任务分配给此用户,否则分配给岗位。

三)流向或网关监听器的配置 此监听器的作用是记录流向的执行事件日志,在平台中是可选的,视具体情况按需配置,详细参考类cn.bc.workflow.activiti.delegate.FlowLogListener 用Activiti Designer打开流程图,点击要配置的流向或网关,在Properties的Listeners 中类似任务监听器的方式进行配置即可:

实验五Java事件处理

实验五Java事件处理 实验目的 1.掌握Java语言中的事件处理方法 2.掌握Java语言中事件源、监视器和处理事件的接口的概念 实验内容 1.图形用户界面设计程序(ArtFo nt.java) 在实验三第1题的基础上,添加事件处理机制,并逐步完善程序功能。分别用ArtFont 类的对象做监视器和匿名内部类的对象做监视器实现。 要求实现如下功能: 当在文本框中输入文字后回车,在文本域中显示输入的文字。当分别选择粗体和斜体 复选框时,文本域中的文字分别显示粗体和斜体样式。 当点击颜色按钮时,出现颜色选择对话框,选择需要的颜色,按确定按钮后,按钮的 前景色和文本域的前景色设置为选定的颜色。 当选择字体样式下拉框中的某一字体样式时,文本域中的文字设置为指定的字 体样式。 当选择字体大小下拉框中的某一字体大小时,文本域中的文字设置为指定的字 体大小。 当选择窗体样式下拉框中的某一窗体效果时,窗体外观改变为指定的窗体外观。 图1程序界面运行效果 package Sy; import java.awt.*; import java.awt.event.*;

import javax.swing.*; public class ArtFont extends JFrame { static ArtFont artFont; JComboBox fontType;// 字体样式下拉框 JComboBox fontSize;// 字体大小下拉框 JComboBox windowStyle;// 窗体样式下拉框 JCheckBox boldBx;// 粗体按钮 JCheckBox italicBx;// 斜体按钮 JButton colorBtn;// 颜色按钮 String[] fontNames;// 字体名称 String[] fontSizes;// 字体大小 JLabel label;// 输入提示标签 JTextField inputText;// 文字输入框 JTextArea txtArea;// 文字显示区 JPanel northPanel;// 字体设置 JPanel centerPanel;// 显示效果区 JPanel southPanel;/样式设置 Font font; int boldStyle, italicStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;// 设置字体的默认颜色为黑色 String[] style = { "默认显示效果 ", "Windows 显示效果 ", "Unix 显示效果 " }; public ArtFont() { super(”字体设置"); // 设置默认字体 boldStyle = 0; italicStyle = 0; fontSizeStyle = 10; fontNameStyle = "宋体 ";

Java+Swing+常用事件和监听器接口

Swing 常用事件和监听器接口 AncestorEvent AncestorListener ancestorAdded(AncestorEvent e) ancestorMoved(AncestorEvent e) ancestorRemoved(AncestorEvent e) CaretEvent 通知感兴趣的参与者事件 源中的文本插入符已经发 生更改 CaretListener caretUpdate(CareEvente) ChangeEvent 通知感兴趣的参与者事件 源中的状态已经发生更改 ChangeListener stateChanged(ChangeEvent e) HyperlinkEvent 通知感兴趣的参与者发生 了与超文本链接有关的事 情 HyperlinkListener hyperlinkUpdate(HyperlinkEvent e) InternalFrameEvent 以事件源的形式添加对J InternalFrame对象的支持的 A WTEvent InternalFrameListener internalFrameActivated(InternalFrameEvent e) internalFrameClosed(InternalFrameEvent e) internalFrameClosing(InternalFrameEvent e) internalFrameDeactived(InternalFrameEvent e) internalFrameDeiconified(InternalFrameEvent e) internalFrameIconified(InternalFrameEvent e) internalFrameOpened(InternalFrameEvent e) ListDataEvent 定义一个列表更改的事件ListDataListener contentsChanged(ListDataEvent e) intervalAdded(ListDataEvent e) intervalRemoved(ListDataEvent e)

监听器与过滤器

监听器与过滤器 监听器简介 什么是监听器 1.能监听某个对象的状态变化的组件 2.监听域对象的变化 监听器相关的概念 1.事件源:被监听的对象- request、session、servletContext 2.监听器:监听事件源的对象- 8个监听器 3.注册监听器:监听器与事件源相绑定 4.响应行为:监听到事件源变化时,去做什么事情 监听器划分 1.三个监听域对象的创建与销毁ServletContextListener HttpSessionListener ServletRequestListener 2.三个监听域对象当中属性变化ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener

域监听器 ServletContext域监听器监听ServletContext域的创建与销毁的监听器ServletContextListenerServletContext域生命周期:服务器启动创建、服务器关闭销毁监听器的编写步骤: 1.编写一个监听器类去实现监听器接口 2.覆盖监听器的方法 3.需要在web.xml中进行配置 作用 1.初始化的工作:初始化对象、初始化数据、加载数据库驱动、连接池的初始化 2.加载一些初始化的配置文件 3.任务调度

HttpSessionListener 监听HttpSession域的创建与销毁的监听器HttpSessionListener HttpSession的生命周期:第一次调用request.getSession时创建、服务器关闭session 过期或手动销毁 应用场景:记录访问人数 过滤器介绍 什么是过滤器 1.filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行 2.可以对目标资源访问前后进行逻辑处理 过滤器编写步骤 1.编写一个过滤器的类实现Filter接口 2.实现接口中尚未实现的方法(主要是DoFilter方法)

java 按钮事件

代码如下,注意注释: import java.awt.Container; import java.awt.event.*; import javax.swing.*; public class ShortTest2 extends JFrame implements ActionListener { JButton jb1; JPanel j1; public ShortTest2() { Container contentPane = this.getContentPane(); j1 = new JPanel(); jb1 = new JButton("Draw"); jb1.addActionListener(this); j1.add(jb1); contentPane.add(j1, "North"); } public static void main(String[] args) { ShortTest2 m = new ShortTest2(); m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); m.setSize(600, 370); m.setLocationRelativeTo(null); m.setVisible(true); } public void actionPerformed(ActionEvent ae) { //主要是这里,按钮一按就执行下面的代码 JOptionPane.showMessageDialog(null, "Hello World!"); } } java点击按钮,出现另一个窗口 第一个窗体LoginFrame.java:

JavaSwing中处理各组件事件的一般步骤完整版

J a v a S w i n g中处理各组件事件的一般步骤 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。 4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。 以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import .*; import .*; public class Simple1 {

private static JFrame frame;dd(myPanel); (); (true); } } 让我们来看看以上代码是如何工作的。在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。相应的变量Frame,button1,button2定义在程序的开头部分。 在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。当GUI 建立后,我们将面板添加到窗体并显示结果。当用户点击按钮时,程序调用actionPerformed方法,通过if语句来判断是哪一个按钮被点击,然后在对话框中显示相应的内容。 利用一个监听器来处理事件的缺点是,当程序比较复杂时,需要一大串的if 语句来实现,程序代码较难阅读与维护。当然,如果处理的事件较少,这种方式比较简单。 通过使用匿名内部类可以解决上述存在的问题。使用简单的匿名内部类作为addActionListener的变量即可。以下是实现代码:

第八讲 AWT和事件监听

第八讲AWT和事件监听打印本页 1 基本概念 下面几讲,我们就来学习AWT的各种容器和组件,并重点学习AWT的事件监听和处理方法。由于学习事件需要用到一些简单的构件,我们先学习几个简单的构件。现在,我们先来介绍AWT里面几个重要的概念:构件,容器,布局管理器和事件监听(AWT P4)。 1.1构件是图形用户界面的最小单位之一,它里面不再包含其他的成分. 构件的作用是完成与用户的一次交互,包括接受用户的一个命令,接受用户的一个文本输入,向用户显示一段文本或一个图形等。常用的构件有: 按钮构件 项目选择构件:复选框(Checkbox)列表(List或Choice) 文本构件:文本框文本区 对话框构件:对话框文件对话框提示框帮助 菜单构件:弹出式菜单复选框菜单 1.2容器 容器是用来组织构件的单元。常用的容器有:面板、窗口。 1.3布局管理器: 布局管理器用来布置容器和容器中的各个构件,比如他们的大小、位置等。AWT提供了几种标准的布局管理器。 1.4事件监听 要使点击鼠标、敲打键盘等实现特定的动作,我们需要捕捉事件并且加以实现。AWT里典型的事件有:鼠标事件、鼠标移动事件、键盘事件、窗口事件等。 我们通过学习最基本的构件和容器(标签、按钮和面板)来粗略理解这些概念。标签和按钮是显示标签的简单构件;而面板是AWT提供的最基本的容器。 2 几个简单的构件和容器 标签(https://www.360docs.net/doc/f21467595.html,bel) 标签用来显示文本。 演示(StarterApplet) 面板(java.awt.Panel) 面板是一个通用的容器,在上面可以放置各种构件。 我们经常用的Applet类,其实就是面板的一个子类 按钮(java.awt.Button) 按钮具有三维外型,当它们被激活时触发按钮事件,用户可以根据按钮事件,做出适当的反应,比如执行一系列操作等。 演示 3 事件 AWT有两种事件处理模型:一种是基于继承的模型,它在AWT1.1或以前的版本中使用,现在已经逐渐被淘汰;另一种是基于授权的事件模型。我们主要学习给予授权的事件模型。 授权事件模型的原理很简单:事件源激发事件、事件监听器监听事件,最后执行事件。可以通过调用addXYZListener(XYZListner)方法向构件注册监听器。把监听器加到构件中以后,如果构件激发相应类型的事件,

实例讲解oracle监听口令及监听器安全

很多人都知道,oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器。 相关示例: d:>lsnrctl stop eygle lsnrctl for 32-bit windows: version 10.2.0.3.0 - production on 28-11月-2007 10:02:40 copyright (c) 1991, 2006, oracle. all rights reserved. 正在连接到(description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521)) (connect_data=(service_name=eygle))) 命令执行成功 大家可以发现,此时缺省的监听器的日志还无法记录操作地址: no longer listening on: (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) 28-nov-2007 09:59:20 * (connect_data=(cid=(program=)(host=)(user=administrator))(command=stop) (arguments=64)(service=eygle)(version=169870080)) * stop * 0 为了更好的保证监听器的安全,大家最好为监听设置密码: [oracle@jumper log]$ lsnrctl lsnrctl for linux: version 9.2.0.4.0 - production on 28-nov-2007 10:18:17 copyright (c) 1991, 2002, oracle corporation. all rights reserved. welcome to lsnrctl, type help for information. lsnrctl> set current_listener listener current listener is listener lsnrctl> change_password old password: new password: reenter new password: connecting to (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) password changed for listener the command completed successfully lsnrctl> set password password: the command completed successfully lsnrctl> save_config connecting to (description=(address=(protocol=tcp)(host=172.16.33.11)(port=1521))) saved listener configuration parameters. listener parameter file /opt/oracle/product/9.2.0/network/admin/listener.ora old parameter file /opt/oracle/product/9.2.0/network/admin/listener.bak the command completed successfully 在我们设置密码后,远程操作将会因缺失密码而出现失败: d:>lsnrctl stop eygle lsnrctl for 32-bit windows: version 10.2.0.3.0 - production on 28-11月-2007 10:22:57 copyright (c) 1991, 2006, oracle. all rights reserved.

使用监听器的三种方法

使用监听器的三种方法.txt生活是过出来的,不是想出来的。放得下的是曾经,放不下的是记忆。无论我在哪里,我离你都只有一转身的距离。一、使用监听器的第一种方式 class cal implements ActionListener{//第一点:在类的后面写实现XXListener button1.addActionListener(this);//第二点:为某个组件注册XXListener //第三点:为XXListener中的监听器写实现的代码。 public void actionPerformed(ActionEvent e){ ..... } 二、使用监听器的第二种方式 //在为某组件注册监听器的同时,创建XXListener的匿名对象,并同时在该匿名对象后面写实现 //该监听器的抽象方法。 class cal { button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { ........ } }); //第二点:为某个组件注册XXListener 三、使用监听器的第三种方式 class cal { //注册XXListener,参数为XXListener 的一对象mylistener button1.addActionListener(mylistener);

//创建该XXListener监听器对象mylistener,并且写出其抽象方法的实现代码 ActionListener mylistener= new ActionListener() { public void actionPerformed(ActionEvent evt) { ........ } };

键盘监听器与鼠标监听器

键盘监听器 键盘监听器KeyListener用来监听键盘事件。键盘事件有三种:KEY_PRESSED键按下了,KE Y_RELEASED键松开了,KEY_TYPED键按过了。每个键都有一个键码,普通键的键码就是ASC II码。键码可通过int getKeyCode()方法获得。Java设置了一种“虚拟键码”(Virtual K ey 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 功能键F1 VK_0 数字键0 VK_B 字母键B 虚拟键码对应的是键位,不区分大小写。要想知道大小写还必须查看修饰键(modifier key)。这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONT ROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。 监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt), keyTyped(KeyEvent evt),分别用于相应事件发生后的处理。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。 除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKey Text(code)方法得到输入的字符串。用isShiftDown()判断shift键是否被按下等。当按下Control键时getKeyText返回的是“ctrl",Alt和Shift也类似。 下面的例子演示得到键码和字符的方法,在命令行上显示结果。 例15 本例程演示键盘监听器后键码的用法。 /// // KeyEvt.java

JAVA事件(台湾)

Java講座(七) Java and Event Handling 圖文?李盈嫻( Luna Lee ) 一、前言 在上一個章節,我們做出了美美的圖形使用者介面,可是,我們做的圖形介面要怎樣才能跟使用者產生互動呢?例如當使用者按下按鈕或移動滑鼠時,程式要做出什麼相對應的動作,畫面會產生什麼變化等等。在此,我們就要藉由『Event Handling』的觀念來完成。本章將會介紹Event的基本觀念,Listener的實作方法,最後並應用到聊天室的範例上。 二、內容 什麼是Event 當我們在寫程式時,多半會需要與使用者互動或回應其指令。在古早古早的以前,若有一支程式想要回應使用者按下滑鼠的動作,可能得要辛苦的寫一大堆code自己去抓相關的資訊。例如,在這支程式被initial 了之後,就要有一支迴圈不斷地去檢查使用者的滑鼠到底被按下去了沒有。這種polling programming的方法,一來浪費系統資源,二來所有要處理的回應與動作都在一個大迴圈中而顯得複雜了許多。 而Java的AWT則採用event-driven programming的方法來達成此目的,當某個特定的事件發生,就會驅動程式去執行某些特定的動作,而可與使用者產生即時的互動。其中有三個要素: ?Event – 意指某個特定的事件、動作,也就是「發生了什麼事件」。例如:視窗關閉、滑鼠移動。 ?Event Source – 產生、觸發事件的元件。例如:Button、TextField。?Event Handler – 負責接收Event object並作處理的Method。 在Java中把Events以物件來表示,並依type分類為不同的classes。有些負責表示較高階的事件(元件本身狀態或內容的改變),如ActionEvent、TextEvent;有些則表示較低階的事件(元件與環境間的溝通,像鍵盤或滑鼠相關的動作),例如KeyEvent、MouseEvent。而除DocumentEvent外,所有event classes的super class皆為java.util.EventObject。 我們在(圖1) 列舉了一些在GUI程式設計中常見,重要的Event classes及其階層關係。(讀者若有需要,也可自行查閱Java API,看看還有哪些Event classes可用。 ) 圖1

JSP中的Filter拦截器和Listener监听器

JSP中的Filter过滤器和Listener监听器 1. JSP中的过滤器 1.1 什么是过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet 或JSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择: (1)以常规的方式调用资源(即,调用servlet或JSP页面)。 (2)利用修改过的请求信息调用资源。 (3)调用资源,但在发送响应到客户机前对其进行修改。 (4)阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。 1.2 过滤器的基本原理 过滤器可以对客户的请求进行处理,处理完成后,它会交给下一个过滤器处理。这样,客户的请求在“过滤器链”里逐个处理,直到请求发送到目标为止。例如,某网站里有提交“修改业务数据”的网页,当用户填写完修改信息并提交后,服务器在进行处理时需要做两项工作:判断客户端的会话查看该用户是否有修改权限;对提交的数据进行统一编码。这两项工作可以在由两个过滤器组成的过滤链里进行处理。当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功,将把视图派发到指定的错误页面。 1.3 过滤器的使用 开发Servlet过滤器的步骤如下:(1)编写实现Filter接口的类;(2)在web.xml中配置Filter。 1.3.1 实现Filter接口类 Filter接口定义了以下方法: 成员描述 destory() 由Web容器调用,初始化此Filter。 init(FilterConfig filterConfig) 由Web容器调用,初始化此Filter。 doFilter(ServletRequest request, 具体过滤处理代码,其中FilterChain参数非常重要,允许通ServletResponse response,FilterChain chain) 过当前过滤器时须要调用FilterChain.doFilter() 下面示例实现一个权限过滤器,若用户尚未登录(Session中没有保存用户信息),将回到登录页面;若已经登录则继续该请求。 public class SecurityFilter implements Filter {

Java Swing中处理各组件事件的一般步骤

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Simple1 { private static JFrame frame; // 定义为静态变量以便main使用 private static JPanel myPanel; // 该面板用来放置按钮组件 private JButton button1; // 这里定义按钮组件 private JButton button2; // 以便让ActionListener使用 public Simple1() // 构造器, 建立图形界面 { // 新建面板 myPanel = new JPanel(); // 新建按钮 button1 = new JButton("按钮1"); // 新建按钮1 button2 = new JButton("按钮2"); SimpleListener ourListener = new SimpleListener(); // 建立一个actionlistener让两个按钮共享 button1.addActionListener(ourListener); button2.addActionListener(ourListener); myPanel.add(button1); // 添加按钮到面板 myPanel.add(button2); }

Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置

Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置 分类:Oracle 基础知识2009-11-24 10:12 8315人阅读评论(7) 收藏举报 一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。 二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。 本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。 三、Oracle网络连接配置方法 配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle 服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如: $ netmgr Windows下启动Net Manager图形窗口如下图示:

事件监听器

不同的事件源可以产生不同类别的事件。例如,按钮可以发送一个ActionEvent 对象,而窗口可以发送WindowEvent对象。 AWT时间处理机制的概要: 1.监听器对象是一个实现了特定监听器接口(listener interface)的类的实例。 2.事件源是一个能够注册监听器对象并发送事件对象的对象。 3.当事件发生时,事件源将事件对象传递给所有注册的监听器。 4.监听器对象将利用事件对象中的信息决定如何对事件做出响应。 下面是监听器的一个示例: ActionListener listener = ...; JButton button = new JButton("OK"); button.addActionListener(listener); 现在,只要按钮产生了一个“动作事件”,listener对象就会得到通告。对于按钮来说,正像我们想到的,动作事件就是点击按钮。 为了实现ActionListener接口,监听器类必须有一个被称为actionPerformed 的方法,该方法接收一个ActionEvent对象参数。 class MyListener implements ActionListener { ...; public void actionPerformed(ActionEvent event) { //reaction to button click goes here } } 只要用户点击了按钮,JButton对象就会创建一个ActionEvent对象,然后调用listener.actionPerformed(event)传递事件对象。可以将多个监听器对象添加到一个像按钮这样的事件源中。这样一来,只要用户点击按钮,按钮就会调用所有监听器的actionPerformed方法。 实例:处理按钮点击事件 为了加深对事件委托模型的理解,下面以一个响应按钮点击事件的简单示例来说明所需要知道的细节。在这个示例中,想要在一个面板中放置三个按钮,添加三个监听器对象用来作为按钮的动作监听器。 在这个情况下,只要用户点击面板上的任何一个按钮,相关的监听器对象就会接收到一个ActionEvent对象,它表示有个按钮被点击了。在示例程序中,监听器对象将改变面板的背景颜色。 在演示如何监听按钮点击事件之前,首先需要讲解一下如何创建按钮以及如何将他们添加到面板中。 可以通过在按钮构造器中指定一个标签字符串、一个图标或两项都指定来创建一个按钮。下面是两个示例: JButton yellowButton = new JButton("Yellow"); JButton blueButton = new JButton(new ImageIcon("blue-ball.gif")); 将按钮添加到面板中需要调用add方法:

Oracle 监听器 Listener资料

Oracle 监听器Listener资料 Oracle 监听器Listener 是一个重要的数据库服务器组件,在整个Oracle 体系结构中,扮演着重要的作用。它负责管理Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,下面的部分,会从几个方面对监听器进行简单介绍。 1.监听器的功能 从当前的Oracle 版本看,Listener 主要负责下面的几方面功能: 1. 监听客户端请求。监听器运行在数据库服务器之上,与Oracle 实例(可为多个) 相关关联,是一个专门的进程process,在Windows 的服务项目或者Linux 的运行进程列表中,都会看到对应的运行进程。Windows 上名为TNSLSNR,Linux/Unix 平台上是lsnrctl。监听器守候在服务器制定端口(默认为:1521),监听客户端的请求。 2. 为客户端请求分配Server Process。监听器只负责接听请求,之后将请求转接给 Oracle Server Process。在Oracle 的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程Server Process(也称为影子进程)作为代理。监听器接受到请求之后,就向操作系统(或者Dispatcher 组件)要求fork (或分配)一个Server Process 与客户端相连。 3. 注册实例服务。本质上讲,Listener 是建立实例和客户端进程之间联系的桥梁。 Listener 与实例之间的联系,就是通过注册的过程来实现的。注册的过程就是实例告诉监听器,它的数据库数据库实例名称instance_name 和服务名

Java的事件处理机制

Java的事件处理机制 概念部分: 1.事件:Event 是一种消息对象,封装了与事件发生相关的信息, 如操作键盘会引发KeyEvent事件, 单击关闭按钮会引发WindowEvent事件, 单击命令按钮或选择菜单项目会引发ActionEvent事件 等等 2.事件源:Event Source 产生事件的对象, 如命令按钮和单选按钮都是事件源,单击他们时,会引发ActionEvent事件 单选按钮会产生ItemEvent事件。 3.事件监听器:Event Listener 在事件发生时,事件源负责给予通知的一种对象。接收到事件通知的监听器主动的对事件进行处理。 两件事:将自己注册给事件源;事件的处理 4.事件处理器Event Handler 事件处理方法,用来接受事件并处理事件的方法。 Java事件处理的步骤: 1.类实现相应的事件监听器接口 2.重写接口中抽象方法 3.给事件源注册事件监听器 【例题】关闭窗口的实现

public class NotepadDemo{ private Frame mainForm; private MenuBar mb; private Menu m1; private Menu m2; private MenuItem mExit; private MenuItem mi1; private MenuItem mi2; private ExitHandler eh; public NotepadDemo(){ mainForm = new Frame(); mb = new MenuBar(); m1 = new Menu("文件(F)"); m2 = new Menu("编辑(E)"); mi1 = new MenuItem("新建 Ctrl + N"); mi2 = new MenuItem("打开 Ctrl + O"); mExit = new MenuItem("退出(X)"); mainForm.setMenuBar(mb); mb.add(m1); mb.add(m2); m1.add(mi1); m1.add(mi2); m1.add(mExit); mainForm.setBounds(0, 0, 400, 300); eh = new ExitHandler(); //注册事件监听器 mExit.addActionListener(eh); mi1.addActionListener(eh); mi2.addActionListener(eh); //注册Form的关闭监听器 mainForm.addWindowListener(eh); } public void NotepadShow(){ mainForm.setVisible(true); } public static void main(String[] args) { NotepadDemo nd = new NotepadDemo(); nd.NotepadShow();

黑马程序员安卓教程:案例-短信监听器

黑马程序员安卓教程:案例-短信监听器 一、需求 系统接收到短信时会将该事件以有序广播(部分自定义的ROM可能已经修改了这个策略,比如:小米的MIUI系统)的形式发送出去,因此我们只需要自定义一个BroadCastReceiver监听该广播(android.provider.Telephony.SMS_RECEIVED)即可监听到短信的到来。由于该广播是有序的,因此如果将我们自定义的BroadCastReceiver配置了较高的优先级,那么我们就能先于系统短信app接收到该广播,然后终止该广播,从而就实现了短信拦截功能。 通过该案例我们可以学到: 1、什么是有序广播? 2、如 何终止有序广播3、如何从 广播中获取短信4、广播的 优先级概念 在该案例中我们要做一个类似短信黑名单的应用,主界面提供一个EditText和一个Button,让用户输入一个“黑名单” ,点击保存之后,如果该号码发短信过来,那么我们的应用就将其拦截。 布局界面很简单,如【文件1-6】所示。 【文件1-6】activity_main.xml 1. 9

5. 6. 11. 17. 18. 三、代码 在该工程中总共用到了两个类,一个是主界面对应的MainActivity,另外一个是广播接收者SmsListenerReceiver。 【文件1-7】MainActivity.java 1. package com.itheima.smslistener; 2. 3.import android.os.Bundle; 4.import android.text.TextUtils; 5.import android.view.View; 6.import android.widget.EditText; 7.import android.widget.Toast; 8.import android.app.Activity; 9.import android.content.SharedPreferences; 10./** 11.* 让用户输入要拦截的号码 12.* 13.* @author wzy2015-11-19 14.* 15.*/ 16.public class MainActivity extends Activity{ 17. 18.private EditText et_num; 19.private SharedPreferences sp; 20. 21.@Override 22.protected void onCreate(Bundle savedInstanceState){

相关文档
最新文档