「java实例事件」java中事件

博主:adminadmin 2022-12-30 13:00:08 1484

今天给各位分享java实例事件的知识,其中也会对java中事件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java事件处理

1.第一个你只是陈述了一些东西,你想问什么?不过是哪个,我不太理解keyTeyped最先激发这句话,因为应该是先产生pressed事件,然后typed,然后released

2.getkeycode的话大小写的确是一样的,但是KeyEvent里面方法啊,常数啊很多,我记得应该是可以shift是否按下的

3.第二种写法当然是要创建FrameDemo,因为processWindowEvent是FrameDemo的方法,而不是jframe的方法,你新建一个jframe实例,按键的时候是不会调用你写的processWindowEvent方法的

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

因为对于 KEY_TYPED 事件,该 keyCode 为 VK_UNDEFINED。这是api上的说法。但是你说的那个因果关系我也不明白。。

谢谢 拿分 走人1.第一个你只是陈述了一些东西,你想问什么?不过是哪个,我不太理解keyTeyped最先激发这句话,因为应该是先产生pressed事件,然后typed,然后released

2.getkeycode的话大小写的确是一样的,但是KeyEvent里面方法啊,常数啊很多,我记得应该是可以shift是否按下的

3.第二种写法当然是要创建FrameDemo,因为processWindowEvent是FrameDemo的方法,而不是jframe的方法,你新建一个jframe实例,按键的时候是不会调用你写的processWindowEvent方法的

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

因为对于 KEY_TYPED 事件,该 keyCode 为 VK_UNDEFINED。这是api上的说法。但是你说的那个因果关系我也不明白。。

1.第一个你只是陈述了一些东西,你想问什么?不过是哪个,我不太理解keyTeyped最先激发这句话,因为应该是先产生pressed事件,然后typed,然后released

2.getkeycode的话大小写的确是一样的,但是KeyEvent里面方法啊,常数啊很多,我记得应该是可以shift是否按下的

3.第二种写法当然是要创建FrameDemo,因为processWindowEvent是FrameDemo的方法,而不是jframe的方法,你新建一个jframe实例,按键的时候是不会调用你写的processWindowEvent方法的

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

因为对于 KEY_TYPED 事件,该 keyCode 为 VK_UNDEFINED。这是api上的说法。但是你说的那个因果关系我也不明白。。

java中的事件

javax.swing.JButton cannot be cast to javax.swing.JTextField

e获取到的资源是button按钮,不是textField文本框,转换时就报错了

java的事件处理是什么?

打个比方:如果用户用鼠标单击了按钮对象button,则该按钮button就是事件源,而java运行时系统会生成ActionEvent类的对象actionE,该对象中描述了该单击事件发生时的一些信息,然后,事件处理者对象将接收由java运行时系统传递过来的事件对象actionE并进行相应的处理。

由于同一个事件源上可能发生多种事件,因此java采取了授权处理机制,事件源可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理。比如在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以授权给事件处理者一来处理鼠标事件,同时授权给事件处理者二来处理键盘事件。有时也将事件处理者称为监听器,主要原因也在于监听器时刻监听着事件源上所有发生的事件类型,一旦该事件类型与自己所负责处理的事件类型一致,就马上进行处理。授权模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。事件处理者(监听器)通常是一个类,该类如果要能够处理某种类型的事件,就必须实现与该事件类型相对的接口。例如例5.9中类ButtonHandler之所以能够处理ActionEvent事件,原因在于它实现了与ActionEvent事件对应的接口ActionListener。每个事件类都有一个与之相对应的接口。将事件源对象和事件处理器(事件监听器)分开。

使用授权处理模型进行事件处理的一般方法归纳如下:

1.对于某种类型的事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener;

2.事件源实例化以后,必须进行授权,注册该类事件的监听器,使用addXXXListener(XXXListener ) 方法来注册监听器。

这是我的一点个人见解,希望对你有帮助,加油。

java中MouseEvent事件例子

public class MouseClickEvent extends JFrame{

public MouseClickEvent() {

Container container = getContentPane();

container.addMouseListener(new MouseListener() {

 @Override

 public void mouseReleased(MouseEvent arg0) {

  int buttonFlag = arg0.getButton();

 

  switch (buttonFlag) {

  case MouseEvent.BUTTON1:

   System.out.println("释放的是鼠标左键!\n");

   break;

  case MouseEvent.BUTTON2:

   System.out.println("释放的是鼠标滚轮!\n");

   break;

  case MouseEvent.BUTTON3:

   System.out.println("释放的是鼠标右键!\n");

   break;

  }   

 }

 @Override

 public void mousePressed(MouseEvent arg0) {

  int buttonFlag = arg0.getButton();

 

  switch (buttonFlag) {

  case MouseEvent.BUTTON1:

   System.out.println("按下的是鼠标左键!\n");

   break;

  case MouseEvent.BUTTON2:

   System.out.println("按下的是鼠标滚轮!\n");

   break;

  case MouseEvent.BUTTON3:

   System.out.println("按下的是鼠标右键!\n");

   break;

  }

 }

 @Override

 public void mouseExited(MouseEvent arg0) {

  System.out.println("光标移出应用程序窗口了!\n");   

 }

 @Override

 public void mouseEntered(MouseEvent arg0) {

  System.out.println("光标进入应用程序窗口了!\n"); 

 }

 @Override

 public void mouseClicked(MouseEvent arg0) {

  int buttonFlag = arg0.getButton();

 

  switch (buttonFlag) {

  case MouseEvent.BUTTON1:

   System.out.println("点击的是鼠标左键!\n");

   break;

  case MouseEvent.BUTTON2:

   System.out.println("点击的是鼠标滚轮!\n");

   break;

  case MouseEvent.BUTTON3:

   System.out.println("点击的是鼠标右键!\n");

   break;

  }

 

  int clickCount = arg0.getClickCount();

  System.out.println("点击次数为"+clickCount+"\n");

 }

});

 }

public static void main(String[] args) {

MouseClickEvent testFrame = new MouseClickEvent();

testFrame.setTitle("鼠标点击事件测试程序!");

testFrame.setVisible(true);

testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

testFrame.setBounds(0, 0, 500, 400);

}

}

浅析Java与C#的事件处理机制(一)

Java与C#的事件处理都是实现了事件源 事件响应者机制 但又不完全相同 Java实现的是一种事件源与事件响应者两级实体对象方式 这里的事件响应者也是事件监听者 而C#实现的是一种事件源 代理 事件响应者三级实体对象方式 下面就这两种方式来具体说明

Java事件处理

从概念上讲 事件是一种在 源对象 和 监听者对象 之间 某种状态发生变化的传递机制 事件有许多不同的用途 例如在Windows系统中常要处理的鼠标事件 窗口边界改变事件 键盘事件等 在Java中则是定义了一个普通的 可扩充的事件机制 这种机制能够

对事件类型和传递的模型的定义和扩充提供一个公共框架 并适合于广泛的应用

与Java语言和环境有较高的集成度

事件能被描述环境捕获和触发

能使其它构造工具采取某种技术在设计时直接控制事件 以及事件源和事件监听者之间的联系

事件机制本身不依赖于复杂的开发工具

事件从事件源到监听者的传递是通过对目标监听者对象的Java方法调用进行的 对每个明确的事件的发生 都相应地定义一个明确的Java方法 这些方法都集中定义在事件监听者(EventListener)接口中 这个接口要继承java util EventListener 实现了事件监听者接口中一些或全部方法的类就是事件监听者 伴随着事件的发生 相应的状态通常都封装在事件状态对象中 该对象必须继承自java util EventObject 事件状态对象作为单参传递给应响应该事件的监听者方法中 发出某种特定事件的事件源的标识是 遵从规定的设计格式为事件监听者定义注册方法 并接受对指定事件监听者接口实例的引用 有时 事件监听者不能直接实现事件监听者接口 或者还有其它的额外动作时 就要在一个源与其它一个或多个监听者之间插入一个事件适配器类的实例 来建立它们之间的联系

事件状态对象(Event State Object)

与事件发生有关的状态信息一般都封装在一个事件状态对象中 这种对象是java util EventObject的子类 按设计习惯 这种事件状态对象类的名应以Event结尾 例如

public class MouseMovedExampleEvent extends java util EventObject{  protected int x y  /* 创建一个鼠标移动事件MouseMovedExampleEvent */ MouseMovedExampleEvent(java awt Component source Point location)  {super(source);x = location x;y = location y; } /* 获取鼠标位置*/ public Point getLocation()  {return new Point(x y); }}

事件监听者接口(EventListener Interface)与事件监听者

由于Java事件模型是基于方法调用 因而需要一个定义并组织事件操纵方法的方式 事件操纵方法都被定义在继承了java util EventListener类的EventListener接口中 按规定 EventListener接口的命名要以Listener结尾 任何一个类如果想操纵在EventListener接口中定义的方法都必须以实现这个接口方式进行 这个类也就是事件监听者 例如

/*先定义了一个鼠标移动事件对象*/public class MouseMovedExampleEvent extends java util EventObject { // 在此类中包含了与鼠标移动事件有关的状态信息  }/*定义了鼠标移动事件的监听者接口*/interface MouseMovedExampleListener extends java util EventListener { /*在这个接口中定义了鼠标移动事件监听者所应支持的方法*/ void mouseMoved(MouseMovedExampleEvent mme);}

在接口中只定义方法名 方法的参数和返回值类型 如 上面接口中的mouseMoved方法的具体实现是在下面的ArbitraryObject类中定义的

class ArbitraryObject implements MouseMovedExampleListener { public void mouseMoved(MouseMovedExampleEvent mme){ }}

ArbitraryObject就是MouseMovedExampleEvent事件的监听者

事件监听者的注册与注销

为了各种可能的事件监听者把自己注册入合适的事件源中 建立源与事件监听者间的事件流 事件源必须为事件监听者提供注册和注销的方法 在前面的bound属性介绍中已看到了这种使用过程 在实际中 事件监听者的注册和注销要使用标准的设计格式

public void add ListenerType( ListenerType listener) public void remove ListenerType( ListenerType listener)

首先定义了一个事件监听者接口

public interface ModelChangedListener extends java util EventListener { void modelChanged(EventObject e);}

接着定义事件源类

lishixinzhi/Article/program/net/201311/14840

关于java实例事件和java中事件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。