Java事件处理一例(awt)

news/2024/7/10 21:47:45 标签: java, import, class, interface, string, 互联网
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

本文以最简单的按钮的鼠标事件为例说明Java事件处理(awt)的方法。

首先我们应该清楚:所有的事件都最终派生自 class="tags" href="/tags/JAVA.html" title=java>java.util.EventObject 类

而本文中的MouseEvent当然也是不例外。

另外 本文中的两个重要的接口 MouseListener,MouseMotionListener 非常重要,他们是事件的监听器,用来监听事件的触发并处理。一个监听器类可以实现多个接口,可以同时处理多个事件。

本文不会用文字太繁琐的介绍事件的处理原理,只给出一个简单的例子。我们可以通过一个简单的例子,认真地揣摩。必要的时候,可以到互联网上查阅相关资料。有的写得非常的详细,但是你必须有耐心看。

例子如下: 

 

class="tags" href="/tags/IMPORT.html" title=import>import class="tags" href="/tags/JAVA.html" title=java>javax.swing.*;
class="tags" href="/tags/IMPORT.html" title=import>import class="tags" href="/tags/JAVA.html" title=java>java.awt.*;
class="tags" href="/tags/IMPORT.html" title=import>import class="tags" href="/tags/JAVA.html" title=java>java.awt.event.*;
 
public class event1{ 
   public static void main(String[] args) {
      JFrame f=new JFrame("测试一下 Event  ");
      Container c=f.getContentPane();
      FlowLayout flo=new FlowLayout();
      c.setLayout(flo);
      JButton b1=new JButton("left");
      JButton b2=new JButton("right");
      c.add(b1);
      c.add(b2);  
     
      //Add listeners
      MouseListener l = new ExampleMouseListener();
     
      MouseMotionListener m = new ExampleMouseListener();
      b1.addMouseListener(l);
      b2.addMouseListener(l);
      b1.addMouseMotionListener(m);
      b2.addMouseMotionListener(m);
     
      f.pack();
      f.setVisible(true);  
   }
 } 
  
  
   //Mouse listener class
   class ExampleMouseListener implements MouseListener,MouseMotionListener{
   //MouseListener interface          
    public void mousePressed(MouseEvent evt){
       System.out.println("Mouse pressed:" + evt);       
    }
   
    public void mouseReleased(MouseEvent evt){
       System.out.println("Mouse released: " + evt);  
    }
   
    public void mouseClicked(MouseEvent evt){
       System.out.println("Mouse clicked" + evt); 
    }
   
    public void mouseEntered(MouseEvent evt){
       System.out.println("Mouse entered" + evt); 
    }
   
    public void mouseExited(MouseEvent evt){
       System.out.println("Mouse exited" + evt); 
    }
   
    public void mouseMoved(MouseEvent evt){
       System.out.println("Mouse moved" + evt); 
    }
   
    public void mouseDragged(MouseEvent evt){
       System.out.println("Mouse dragged" + evt); 
    }
   }


http://www.niftyadmin.cn/n/658116.html

相关文章

Arthas使用笔记

参考阿里官方文档学习 Arthas(阿尔萨斯) Alibaba开源的Java诊断工具(需要JDK6) 使用(安装使用Linux与windos一致,支持tab补全指令,路径) 直接启动jar包,必须有Java进程运行否则直接退出 运行后显示可选进程,使用数字回车选择(选择后,会切…

「BZOJ 4318」OSU!

题目链接 戳我 \(Solution\) 我们考虑每增加一个\(1\)会对答案有什么影响: \[E((x1)^3)-E(x^3)E(3x^23x1)3E(x^2)3E(x)1\] 所以我们只需要维护\(E(x^2)\)和\(E(x)\) 令:\(x1[i]E(x)\)\(x2[i]E(x^2)\)\(x1[i](x1[i-1]1)*p[i]\)\(x2[i](x2[i-1]x1[i-1]*21)*p[i]\)\(ans[i]ans[i-1…

电脑的CMOS电池居然还能坏?

最近发现我每次开机后,电脑的显示时间都是从2003-01-01 00:00:00 开始。感觉很奇怪。我尝试更改了机会,但是刚刚改完的时候还正常,但是一旦关机后再开机,又回去了。咨询了一些专家,有的说可能电…

.NET中使用Redis 转发

.NET中使用Redis Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博、Github、StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/。 最近项目中需要使用Redis,这里简单记录一下Redis的安装,以及如…

Docker入门笔记

参考尚硅谷周阳视频与Docker技术入门与实战 Docker把代码与环境一同打包安装(一次封装处处运行) docker与虚拟机相比有更少的抽象层,不需要硬件虚拟化,直接使用实际的物理资源,硬件利用效率更高 Docker与虚拟机相比的优点 Docker容器启动快…

Dubbo简单使用

参考尚硅谷雷丰阳与官方文档 网站应用发展 单一应用架构:网站流量小只需要一个应用,所有功能部署到一起 垂直应用架构:访问量逐渐增大,将应用拆分为几个互不相关的应用(无法重用公共模块) 分布式服务架构:应用之间必须交互&…

WPF 保存image控件里的图片

WPF 保存image控件里的图片 原文:WPF 保存image控件里的图片string ProImgPath ProcessPath name ".png";//要保存的图片的地址,包含文件名 BitmapSource BS (BitmapSource)ImgPro.Source; PngBitmapEncoder PBE new PngBitmapEncoder(); PBE.Frames…

Java并发编程的艺术学习笔记

Callable创建线程 // Callable 通过FutureTask进入线程 适配器 FutureTask 实现 RunnableFuture // RunnableFuture 继承Runnable, Future<V> FutureTask<String> task new FutureTask<>(new Callable<String>() {Overridepublic String call() thr…