简单说说java的时间模型

事件模型

首先你得有个事主儿(事件源),啥时候做个通知我下,我好处理,OK,在我这注个册吧,有事告你声,你好处理,事情来了,调用准备好的方法XX。。。

事件源 ---发生事件的对象

事件--- 发生了什么事 eg :MouseEvent KeyEvent actionEvent等等

监听器 -- 监听某component的某个事件  一般有实现某种监听器的类的对象来监听 一般把事件源对象的具体信息封装到e(监听器的方法参数里 XXEvent e)

注册  -- addXXListener(XXListener) component的addXXListener(实现XX监听器的对象)  监听谁,登个记,注意这个事组件的addXXListener方法

回调方法 -- 预先准备好了,如果你xx,我就调用之前准备好的事件处理程序XX

通过e.getSource();来获取对象信息 返回值是Object类型,加一个强转,转换为监听的事件源类型的对象。

然后通过这个对象调用事件源对外提供的一些方法,并传入一些参数(eg: e.getX(),e.getY()...), 就可对事件源对象进行访问。

有的时候需要在一个面板上保留之前画的图像,可用ArrayList来存储相关图形。

 1 import java.awt.*;
 2 import java.awt.event.*;
 3 import java.util.*;
 4
 5
 6 public class MouseAdapterTest extends Frame {
 7     public static void main(String [] args) {
 8         new MouseAdapterTest();
 9     }
10     //constract an event
11     public MouseAdapterTest() {
12         setBounds(300,300,400,300);
13         setBackground(new Color(250,210,245));
14
15         points = new ArrayList<Point>(); //action! 如果不进行构造 编译可以运行点击出错
16         addMouseListener(new MouseTest());
17         setVisible(true);
18     }
19
20     public void paint(Graphics g) {
21         Iterator <Point> i = points.iterator();
22         while(i.hasNext()) {
23             Point p = i.next();
24             g.setColor(Color.BLUE);
25             g.drawOval(p.x,p.y,5,5);
26         }
27     }
28
29     public void addPoint(Point p) {
30         points.add(p);
31     }
32
33     private  ArrayList <Point> points = null;
34 }
35
36 class MouseTest extends MouseAdapter {
37     public void mousePressed(MouseEvent e) {
38         MouseAdapterTest mt = (MouseAdapterTest)e.getSource();
39         mt.addPoint(new Point(e.getX(),e.getY()));
40         mt.repaint();
41     }
42 }
43 /**************
44 **在jdk 1.6 上运行效果
45 ** 随着鼠标点击 界面显示不同的圈点
46 ** 自己要多练习 version 1.0
47 *
48 *
49 ***************/

熟练使用API,程序员最宝贵的是思想,熟悉不同工具的使用,想为什么要用这个,换其他实现会不会更好。

学习方法很重要!

时间: 2024-08-02 01:11:30

简单说说java的时间模型的相关文章

一个简单的JAVA服务器-客户端模型-tcp

package com.sxt.tcp; import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws IOException { System.out.println("----Server---

一个简单的JAVA服务器-客户端模型

package com.sxt.udp; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; public class UdpClient { public static void main(String[] args) throws Exception { System.out.pri

Java线程学习整理--4---一个简单的生产者、消费者模型

 1.简单的小例子: 下面这个例子主要观察的是: 一个对象的wait()和notify()使用情况! 当一个对象调用了wait(),那么当前掌握该对象锁标记的线程,就会让出CPU的使用权,转而进入该对象的等待池中等待唤醒,这里说明一下,每一个对象都有一个独立的等待池和锁池! 等待池:上述的wait()后的线程会进入等待池中,处于下图线程声明周期(简单示意图) 中的这个状态,等待池中的线程任然具有对象的锁标记,但是处于休眠状态,不是可运行状态! 当该对象调用notify方法之后,就会在等待池中系统

OSGI(面向Java的动态模型系统)

基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 OSGI 盟已经开发了为例如象HTTP服务器.配置.日志.安全.用户管理.XML等很多公共功能标准组件接口.这些组件的兼容性插件实现可以从进行了不同优化和使用代价的不同计算机服务提供商得到.然而,服务接口能够基于专有权基础上开发. 因为OSGi技术为集成提供了预建立和预测试的组件子系统,所以OSGi技

Java虚拟机内存模型及垃圾回收监控调优

Java虚拟机内存模型及垃圾回收监控调优 如果你想理解Java垃圾回收如果工作,那么理解JVM的内存模型就显的非常重要.今天我们就来看看JVM内存的各不同部分及如果监控和实现垃圾回收调优. JVM内存模型         正如你上图所看到的,JVM内存可以划分为不同的部分,广义上,JVM堆内存可以划分为两部分:年轻代和老年代(Young Generation and Old Generation) 年轻代(Young Generation) 年轻代用于存放由new所生成的对象.当年轻代空间满时,

OSGI 面向Java的动态模型系统

OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范.简单来说,OSGi可以认为是Java平台的模块层. OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境.Java提供在多个平台支持产品的可移植性.OSGi技术提供允许应用程序使用精炼.可重用

通过案例学调优之--Oracle Time Model(时间模型)

通过案例学调优之--Oracle Time Model(时间模型) 数据库时间  优化不仅仅是缩短等待时间.优化旨在缩短最终用户响应时间和(或)尽可能减少每个请求占用的平均资源.有时这些目标可同时实现,而有时则需要进行折衷(如在并行查询时).通常可以认为,优化就是避免以浪费的方式占用或保留资源. 对数据库发出的任何请求都由两个不同的段组成:等待时间(数据库等待时间)和服务时间(数据库 CPU 时间).等待时间是各种数据库实例资源的所有等待时间的总和.CPU 时间是实际处理请求时消耗的时间的总和.

Java网络编程和NIO详解3:IO模型与Java网络编程模型

Java网络编程和NIO详解3:IO模型与Java网络编程模型 基本概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间.针对linux操作系统而言,将最高的1G字节(从虚拟地址

通过实例理解Java网络IO模型

网络IO模型及分类 网络IO模型是一个经常被提到的问题,不同的书或者博客说法可能都不一样,所以没必要死抠字眼,关键在于理解. Socket连接 不管是什么模型,所使用的socket连接都是一样的.以下是一个典型的应用服务器上的连接情况.客户的各种设备通过Http协议与Tomcat进程交互,Tomcat需要访问Redis服务器,它与Redis服务器也建了好几个连接.虽然客户端与Tomcat建的是短连接,很快就会断开,Tomcat与Redis是长连接,但是它们本质上都是一样的.建立一个Socket后