java事件机制 性能_Java事件机制理解及应用

Java事件机制理解及应用

1.从总体看事件机制

其实事件机制是一种处理世界的方式和方法。传统的顺序程序设计总是按照流程来安排所做的工作,而事件机制的特点在于:等待,如果有事情发生则处理之。这样的好处是顺序程序设计在没有事情做的时候也必须循环运行,做毫无效率的空的循环工作。而事件机制在没有事情的时候则可以不做任何事情的等待,从而可以释放各种资源用于其它需要的程序。其实,这和计算机的中断处理是一个想法和道理的。

事件总是和某个对象相关,即每个事件必须有一个事件源。比如,按纽按下事件必须和某个按钮相关,而绝对不会出现了一个按纽按下事件,但是没有任何按钮存在。

同时,某个事件发生了,则可能该事件会引起一些相关效果,也可能虽然发生,但不产生任何效果。即事件发生可能会被处理,也可能不会被处理。

处理一个事件的操作,可以由事件发生的事件源进行,而更多的可能是由其它对象来进行。比如,在一个窗口中的“退出”按钮被按下,该事件引起窗口的关闭,这个关闭的操作必须由窗口,而不是该按钮来进行。

事件机制中,操作事件发生后进程的主体并不会不断地查询事件是否发生,而应该等待事件源在事件发生时通知它该事件发生了。如窗口并不会不断地查询“退出”按钮是否按下,而应该在“退出”按钮按下事件发生时由该按钮通过某种方式来通知窗口事件发生了。

对于事件源而言,需要知道其事件发生的主体可能没有,可能有一个,也可能有多个。所以,当事件发生时,一般性地“说”:事件发生了,并给出事件发生的相关信息是事件源的责任,但哪些主体需要得到该通知则不是事件源的责任,而是其它主体的责任。即:需要监控某个事件源事件是否发生的主体必须负责监听事件源事件是否发生。

同一个事件源可以发生多种事件,同一类事件可以由不同的事件源引起。比如,按纽可以发生“按下”、“释放”、“获得焦点”等多个事件。而“获得焦点”事件也可以由按钮、窗体、列表框等多个事件源引起。

因此,事件处理机制必须表达和处理好这么几个东西:事件源,描述可能引起事件的对象的所有属性,包括在事件发生时发出通知。事件,描述和处理事件的所有信息。主体,负责对其关心的事件发生后的处理。事件监听,负责监听主体关心的事件源是否发生相关的事件,并在事件发生时将事件的信息传递给主体。

2.Java的事件处理机制概览

根据事件处理机制的总体情况,Ja

相关文档:

Java里面的dnd;

界面编程里面能熟练的运用的人不多,而对Java中的拖拽知根知底的人就更少了我的一篇 文章-- Java中的Drag and Drop详解与代码示例 里面有详细介绍.

java.awt.MouseInfo, java.awt.PointerInfo;

我曾经想得到鼠标在屏幕上的绝对位置,我试过通过在MouseListener里面得到鼠标在一个控件里面的相� ......

Oracle中可以调用Java的代码,一般通过两种方式进行调用,一个是直接将Java代码写在Oracle内部,另外一种是将编译好的class文件载入到Oracle中。

-A-

1、在SQLPlus中创建Oracle中的Java类与方法(方法必须是静态公有方法)

create or replace and compile java source named hello as

public class Hello {

pu ......

tomcat为一个jsp和servlet的容器,但它除了这个外还自带了web服务器。也就是说,它既是servlet容器,也是一个web服务器。

它是用java编写的,用来执行servlet和jsp的,但处理静态资源上apache等专业服务器功能那么强。所以很多人愿意将两者结合起来使用。tomcat处理动态页面,而appache处理静态资源,这样两者各取所长。另 ......

import java.io.File;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Set;

import java.util.Iterator;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class ReadSetting {

......

java  保留2位小数  转载

方式一:

四舍五入

double   f   =   111231.5585;

BigDecimal   b   =   new   BigDecimal(f);

double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP). ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值