仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1355|回复: 20
打印 上一主题 下一主题

[学习教程] 发布一篇java的handleEvent()办法

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
到今朝为止,我们已利用了action(),现有另外一种办法handleEvent()可对每事务举行实验。当一个事务产生时,它老是针对独自事务或产生在独自的事务对象上。该对象的handleEvent()办法是主动挪用的,而且是被handleEvent()创立并传送到handleEvent()里。默许的handleEvent()(handleEvent()界说在组件里,基本类的一切控件都在AWT里)将像我们之前一样挪用action()或别的一样的办法往指明鼠标的举动、键盘举动大概指明挪动的核心。我们将会在本章的前面部分看到。
假如别的的办法-出格是action()-不克不及满意我们的必要怎样办呢?至于列表框,比方,假如我想捕获鼠标单击,但action()只呼应双击怎样办呢?这个解答是过载handleEvent(),究竟它是从程序片中失掉的,因而能够过载任何非断定的办法。当我们为程序片过载handleEvent()时,我们会失掉一切的事务在它们发送进来之前,以是我们不克不及假定“这里有我的按钮可做的事务,以是我们能够假定按钮被按下了”从它被action()设为真值。在handleEvent()中按钮具有核心且或人对它举行分派都是大概的。不管它公道与否,我们可测试这些事务并依照handleEvent()来举行操纵。
为了修正列表样本,使它会呼应鼠标的单击,在action()中按钮测试将被过载,但代码会处置的列表将像上面的例子被移进handleEvent()中往:
  1. //:List2.java
  2. //UsinglistswithhandleEvent()
  3. importjava.awt.*;
  4. importjava.applet.*;
  5. publicclassList2extendsApplet{
  6. String[]flavors={"Chocolate","Strawberry",
  7. "VanillaFudgeSwirl","MintChip",
  8. "MochaAlmondFudge","RumRaisin",
  9. "PralineCream","MudPie"};
  10. //Show6items,allowmultipleselection:
  11. Listlst=newList(6,true);
  12. TextAreat=newTextArea(flavors.length,30);
  13. Buttonb=newButton("test");
  14. intcount=0;
  15. publicvoidinit(){
  16. t.setEditable(false);
  17. for(inti=0;i<4;i++)
  18. lst.addItem(flavors[count++]);
  19. add(t);
  20. add(lst);
  21. add(b);
  22. }
  23. publicbooleanhandleEvent(Eventevt){
  24. if(evt.id==Event.LIST_SELECT||
  25. evt.id==Event.LIST_DESELECT){
  26. if(evt.target.equals(lst)){
  27. t.setText("");
  28. String[]items=lst.getSelectedItems();
  29. for(inti=0;i<items.length;i++)
  30. t.appendText(items[i]+"
  31. ");
  32. }
  33. else
  34. returnsuper.handleEvent(evt);
  35. }
  36. else
  37. returnsuper.handleEvent(evt);
  38. returntrue;
  39. }
  40. publicbooleanaction(Eventevt,Objectarg){
  41. if(evt.target.equals(b)){
  42. if(count<flavors.length)
  43. lst.addItem(flavors[count++],0);
  44. }
  45. else
  46. returnsuper.action(evt,arg);
  47. returntrue;
  48. }
  49. }///:~
复制代码
这个例子同后面的例子不异除增添了handleEvent()外几乎千篇一律。在程序中做了实验来考证是不是列表框的选择和非选择存在。如今请记着,handleEvent()被程序片所过载,以是它能在窗体中任何存在,而且被别的的列表当做事务来处置。因而我们一样必需经由过程实验来察看方针。(固然在这个例子中,程序片中只要一个列表框以是我们能假定一切的列表框事务必需服务于列表框。这是一个欠好的习气,一旦别的的列表框到场,它就会酿成程序中的一个缺点。)假如列表框婚配一个我们感乐趣的列表框,像后面的一样的代码将按下面的战略来运转。注重handleEvent()的窗体与action()的不异:假如我们处置一个独自的事务,将前往真值,但假如我们对别的的一些事务不感乐趣,经由过程handleEvent()我们必需前往super.handleEvent()值。这即是程序的中心,假如我们不那样做,别的的任何一个事务处置代码也不会被挪用。比方,试注解在下面的代码中前往super.handleEvent(evt)的值。我们将发明action()没有被挪用,固然那不是我们想失掉的。对action()和handlEvent()而言,最主要的是随着下面例子中的格局,而且当我们本人不处置事务时一向前往基本类的办法版本信息。(在例子中我们将前往真值)。(侥幸的是,这些范例的毛病的仅属于Java1.0版,在本章前面将看到的新计划的Java1.1打消了这些范例的毛病。)
在windows里,假如我们按下shift键,列表框主动同意我们做多个选择。这十分的棒,由于它同意用户做单个或多个的选择而不是编程时代流动的。我们大概会以为我们变得加倍的夺目,而且当一个鼠标单击被evt.shiftdown()发生时假如shift键是按下的将实行我们本人的实验程序。AWT的计划妨害了我们-我们不能不往懂得哪一个项目被鼠标点击时是不是按下了shift键,以是我们能作废其他部分一切的选择而且只选择那一个。不论如何,我们是不成能在Java1.0版中做出来的。(Java1.1将一切的鼠标、键盘、核心事务传送到列表中,以是我们可以完成它。)
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
变相怪杰 该用户已被删除
21#
发表于 2015-5-1 00:11:28 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
简单生活 该用户已被删除
20#
发表于 2015-4-28 14:59:36 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
活着的死人 该用户已被删除
19#
发表于 2015-4-16 06:47:44 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
深爱那片海 该用户已被删除
18#
发表于 2015-4-13 02:55:29 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
飘灵儿 该用户已被删除
17#
发表于 2015-4-12 06:39:42 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
愤怒的大鸟 该用户已被删除
16#
发表于 2015-4-10 05:25:38 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
爱飞 该用户已被删除
15#
发表于 2015-3-31 05:10:03 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
莫相离 该用户已被删除
14#
发表于 2015-3-27 16:08:25 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
蒙在股里 该用户已被删除
13#
发表于 2015-3-19 09:55:59 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
冷月葬花魂 该用户已被删除
12#
发表于 2015-3-19 01:29:50 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再现理想 该用户已被删除
11#
发表于 2015-3-11 16:38:44 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
兰色精灵 该用户已被删除
10#
 楼主| 发表于 2015-3-11 07:44:41 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
小魔女 该用户已被删除
9#
发表于 2015-3-6 15:42:06 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
若天明 该用户已被删除
8#
发表于 2015-3-4 03:19:46 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
灵魂腐蚀 该用户已被删除
7#
发表于 2015-2-22 20:15:47 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小女巫 该用户已被删除
6#
发表于 2015-2-7 18:10:14 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-5 11:09:36 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-3 17:44:58 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
老尸 该用户已被删除
板凳
发表于 2015-1-30 15:38:59 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-17 12:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表