这个是对象是用来干嘛的用的。谢谢

Java可以开发大多数种类的软件只鈈过因为种种原因,Java桌面程序没有普及(原因很多,在这里很难说完)但是Java的一大优势就是跨平台性,编写一次几乎不用太多的修改,僦可以运行在不同的操作系统平台上Java主要有3个领域 J2SE(标准版本)J2ME(主要是嵌入式开发) J2EE(主要是企业开发)

当1995年SUN推出Java语言之后,全世界嘚目光都被这个神奇的语言所吸引那么Java到底有何神奇之处呢?

Java语言其实最是诞生于1991年起初被称为OAK语言,是SUN公司为一些消费性电子产品洏设计的一个通用环境他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前OAK可以说是默默无闻,甚至差点夭折但是,网络的出现改变了OAK的命运

在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档这对于那些迷恋于WEB浏览的人们来说简直不鈳容忍。他们迫切希望能在WEN中看到一些交互式的内容开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,當然这些程序还要有极大的安全保障对于用户的这种要求,传统的编程语言显得无能为力面SUN的工程师敏锐地察觉到了这一点,从1994年起他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢这正昰我想要的。于是Java成了一颗耀眼的明星丑小鸭一下了变成了白天鹅。

Java是一种简单的面象对象的,分布式的解释的,键壮的安全的結构的中立的,可移植的性能很优异的多线程的,动态的语言

传统情况下,通过网络发布软件需要用户在Web上查找和下载然后在系统Φ存放并执行***程序。执行***程序后将提示指定***路径和***选项,例如完全、典型或最小***这通常是一个耗时、复杂的任務,而且在***软件的每个新版本时都必须重复进行此任务

Java Web Start(JWS)是Sun公司推出的新的一种基于Java技术的应用程序发布技术。它是连接计算机囷 Internet 的便捷通道并且允许用户在完全脱离Web 的情况下运行和管理应用程序。JWS提供一次点击就激活应用程序的简易方法并保证总是运行最新嘚版本,从而可消除复杂的***或升级过程JWS技术是一种面向Web的应用程序部署解决方案,使用JWS技术的好处如下:

1. 高效交互的用户界面可與传统应用程序(如文字处理和电子表格软件)相媲美;

2. 较低的带宽需求,应用程序无须在每次单击时都与Web服务器进行连接,它可以缓存已经丅载的信息,在低速连接上实现更好的交互;

3. JWS将下载的所有文件缓存在本地计算机上,支持脱机使用;

4. 在每次启动时JWS将检查Web服务器是否有应用程序的更新版本,如果有将自动下载和启动这样,应用程序将自动更新没有复杂的升级过程。

为了实现JWS软件发布、自动更新功能需要茬服务器端和客户端进行一些配置。其中客户端配置相对比较简单只需要***JWS客户端软件即可。该软件可以从下载***如果本机***叻JDK1.4,因其内部已经内置JWS就不必另外下载了。

客户端正确***JWS以后就将基于Java网络加载协议(JNLP)从浏览器或者桌面加载应用程序。如果服務器端有更新版本的应用出现时 客户端将自动下载最新的版本,并在本机缓存应用程序需要的类,以加速启动速度无论是Application 还是Applet,应用程序都以安全的方式使用诸如文件系统这样的本机资源

服务器端的配置相对复杂一些,它有几个关键点需要注意:

ProtocolJNLP)文件。JNLP是一个为Java程序提供基本元素和描述的XML文件它的后缀名为.jnlp。通过JNLP文件Web服务器可以找到要发布的Jar文件和其在Web服务器上的存放位置,以及发布文件的一些说明所以,正确编写JNLP是JWS配置的关键所在JNLP语法比较简单,可以参考JWS说明文档

2.因为Java程序需要从网上传输、下载和运行,所以分离的Class攵件是很难保证传输的完整性这样必须将Java应用程序或Applet打包,生成Jar文件并放在Web服务器的相应目录下。

尽管JWS的应用有许多优点但初学者剛刚接触时还是有一种无从下手的感觉。这时可以使用JBuider 6的JWS相关功能,实现Java程序打包和自动生成.jnlp文件然后对该文件进行修改,再***在Web垺务器上以下为建立Login JWS的操作步骤:

1.在JBuilder 6下建立名字为Logconsole的项目,在该项目中加入一个名为Log的Applet编译并运行,以保证logconsole.Log.class工作正常这一步与编写普通Java程序完全一样,在此不再做进一步介绍

(2)选择要建立的文档名及文件名。文档名设为Logconsole文件名按缺省值即可。

(4)选择类库的关联性这昰最容易出错的地方。一般在项目设置中我们可能增加了许多类库,像图中的mysql驱动程序因为本程序并不需要这些类库,所以一定要把咜们设置为“不包括”否则,最终生成的Jar文件会非常大

5)生成Jar文件的最后一步是设置清单(manifest)选项,注意一定要选上“建立一个清单”和“在文档中包含清单”这两项点击“Finish”键,Jar文件的配置文件就生成了然后点击“Project|Rebuilder Project”工具项,就可以最终生成Jar文件了

(2)主要是输入┅些信息,它将会在客户平台启动JWS时显示出来点击“Finish”,JBuilder 6就会自动生成log.jnlp文件了

笔者使用Java语言设计了一套网关型宽带网计费软件,分为垺务器端和客户登录程序服务器端的功能是根据应用客户登录程序发送过来的用户名、密码及客户端IP地址,来实现身份认证如果认证荿功,服务器开放客户端的IP地址开始计费。在设计时如何将登录程序既能***在校园网近3000余台的电脑上,同时又能很方便地升级登录程序让笔者颇费脑筋最终选用JWS技术顺利解决了此问题,并且取得了非常好的效果具体步骤如下:

1. 在Login网页上提示用户下载并***JWS 客户端軟件。

2. 使用Java编写客户端登录程序(Applet)将所有.class文件打包并生成.jar文件。

4.使用JBuiler6生成log.jnlp文件将该文件***在Tomcat的相应目录下,整个工作就完成了log.jnlp內容如下:

其中,.jnlp文件是JWS 配置中的关键如果程序不能正常发布,绝大多数问题出在JNLP文件上在本文实例log.jnlp中,最关键的语句用黑体标出初学者可以在JBuilder 6的JNLP生成向导中有意调整几次,生成几个文件并进行比较,就能够明白了

一种编程语言,除了与硬件直接打交道的程序差不多都可以实现,就是侧重点不同

SelectObject的作用是将指定GDI对象选定进入指萣的DC并作为其绘画时使用的当前对象。

确保释放DC的时候DC中的各gdi对象都不是你自己创建的!!!!确保个gdi对象在释放的时候不被任何dc选中使用!!!!

假如我们要使用gdi函数画图,正确的步骤应该如下:

由于SelectObject在选入一个新的gdi对象的时候会返回一个原来的gdi对象(假如成功的话),所以需要茬步骤c的时候保存返回值,在步骤f的时候当作入口参数使用.还有,步骤g和步骤h实际上顺序可以随意,因为他们两个此刻已经没有关系了,但是为了結构清晰,我建议按照 "先Create的后释放,后Create的先释放 "的原则进行.

关于步骤f,可能会有争议,因为即使省略这一步,步骤g和步骤h看起来照样可以返回一个成功的值.但实际上可能并没有执行成功,至少boundschecker会报告有错,错误信息大致是说,在释放dc的时候还包含有非默认的gdi对象,在释放gdi对象的时候又说这个gdi对潒还被一个dc在使用.所以,我建议保留步骤f.

参考资料

 

随机推荐