动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.巧用JBuilderX代码美化工具.
.用Spring JMS使异步消息变得简单.
.基于mock对象和JUnit框架简化Spr.
.GEF-ALL-3.1.
.Flex开发步骤——配置过程总结.
.Java相关的编译技术.
.从ifelse到设计模式的转变.
.MIDP1.0游戏完整实现-双人扫雷1..
.留言板.
.Java替代C语言的可能性.
.italics 方法.
.Java中基本数据类型与流的操作方.
.对JAVA语言的十个常见误解.
.JDBC 概述(二).
.戏说java设计模式中的命令模式.
.[JAVA100例]065、线程同步.
.使用ObjectStream 进行写入和读出.
.Attributes 属性.
.开发不再是苦差事 用Eclipse简化.
.iReport整合向量图形的使用心得.

JAR进阶(下)

发表日期:2008-1-5 |



  从上一篇看到的JAR的基本用法,似乎并没让人有感觉到JAR的出现是给applet的应用带来了一个新的开始。但您也许看完了下面的,就会对JAR稍有认同了。

  很多试着在jbuilder里做过applet的Java爱好者都知道,applet的界面布局是一个比较繁人的问题,远不是如VB里面把控件放到界面上那么简单,就算是用最"高级"的grid bag布局治理器,要在上面摆多个控件也是需要调整又调整的,而且就算是在jbuilder里面还看得可以接受,但换到浏览器里面也许又是另一个样子了,当然也有摆得好的,当究竟是需要时间和经验的,可是在jbuilder里面假如对底板不选grid bag布局治理器,而选XY布局,那在上面摆控件就真的是一件很轻松的事情了,令人遗憾的是XY布局所调用的类是com.borland.jbcl.layout下面的,是由borland公司自己编写的,很显然这样编写的applet是轻松了编写,痛苦了应用,因为实在是无法让仅仅认得jdk1.0的IE去熟悉borland写的类,那么就真的只有写给自己看了吗,现在有了JAR,你会发现如按下面的步骤来,是可以很轻松的让别人也看到你写的包含非jdk标准类的applet。

  我们在第一步写的那界面上再添加几个按钮,先把底板的布局由grid bag改变成xy,再在上面添加几个按钮,把按钮的右击事件也设置为弹出菜单,以下是源程序,在jbuilder生成的代码上简化一下,去掉暂可不用的代码和一些注释,但保证可以正常运行,

package test1;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import com.borland.jbcl.layout.*;

public class Applet1 extends Applet {
boolean isStandalone = false;
PopupMenu popupMenu1 = new PopupMenu();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
MenuItem menuItem3 = new MenuItem();
Button button1 = new Button();
XYLayout xYLayout1 = new XYLayout();/*面板改变为XYLayout布局,使用的是非jdk标准类*/
Button button2 = new Button();
Button button3 = new Button();/*添加三个按钮*/
public void init() {
menuItem1.setLabel("1");
menuItem2.setLabel("2");
menuItem3.setLabel("3");
button1.setLabel("button1");
button1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
button1_mousePressed(e);
}
});
this.setLayout(xYLayout1);
button2.setLabel("button2");
button2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
button1_mousePressed(e);
}
});
button3.setLabel("button3");
button3.addMouseListener(new java.awt.event.MouseAdapter() {/*三个按钮的右键事件都为一个*/
public void mousePressed(MouseEvent e) {
button1_mousePressed(e);
}
});
popupMenu1.add(menuItem1);
popupMenu1.add(menuItem2);
popupMenu1.add(menuItem3);
this.add(button1, new XYConstraints(155, 5, -1, -1));
add(popupMenu1);
this.add(button2, new XYConstraints(49, 94, 101, 32));
this.add(button3, new XYConstraints(235, 92, 98, 36));
}
void button1_mousePressed(MouseEvent e) {
int mods=e.getModifiers();
if((mods&InputEvent.BUTTON3_MASK)!=0)
{
popupMenu1.show(button1,e.getX(),e.getY());
}
}
}

  通过在jbuilder的预览中可以看到,三个按钮未改动位置,而且右键单击也按要求在一个按钮上出现。很可惜的是这样的applet无法发布出来,我们试着打开class目录下的Applet1.Html,IE报出一个出错信息:"load:test1.Applet1 cant't be instantiated"。原因就是IE并不熟悉com.borland.jbcl.layout下面的类,而这里使用了XYLayout。.那么我们开始制作包含该XYLayout类的JAR来发布该applet。

  还是通过new一个 Archive Builder开始,

  Archive type : Applet

  Project classes and resources : Include required classes and known resources

  Required classes and resources : add test1.Applet1.class

  再点击next,就到了要害的一步,显示的JBCL和DataEXPress都是applet所需要调用到的类,而且都是非jdk标准的,可以通过在这里选择后也包含到这个JAR文件中,供applet调用,默认的设定是Include required classes and all resources,即把applet所需要调用的类包含到JAR中,并且还包括这个类所中所包含的所有资源,而不管applet是否会用到。所以我们一般情况下只需要选择include required classes and known resources,资源文件要尽量少的包含到JAR中,以避免JAR文件过于庞大。记住是要让JBCL和DataExpress都选择为Include Deps。这样便很轻松的完成了相关类的添加工作。

  完成后可以在test1.jpr的目录数下找到Applet,builder它得到的test1.jar目录数中可以看到多出了com.borland.jbcl.layout这样的目录,在这个目录下包含着XYLayout.class和XYConstraints.class两个类文件,这就是这个applet所需要调用的非标准类了,还是要记住,每当重新编译了这个applet,都要再编译一次JAR,这样才能让新生成的applet文件包含到JAR中。

  接下来就只需要在有test1.jar这个文件的目录里面新建一个文件testjar.html :

  <applet code=test1.Applet1.class archive="test1.jar" width=350 height=200 > </applet>

  需要提醒的是,假如在IE里面浏览该html,假如有过重新编译JAR并要把变化反应到网页上来,又没有关闭先前开的浏览该html的IE窗口,就要在地址栏里面按Ctrl+F5来刷新该html。

  可以看到这样的应用真的给applet赋予了更强大的生命力,而且在jbuilder里面很轻易的就实现了它。但是就applet的应用来讲,还是有个悬而未决的问题,很多朋友都知道,在applet里面不能添加进swing类,因为IE只是支持jdk1.0,而swing类是以 jdk1.1 轻型用户界面框架为基础的,不在IE的支持范围,那么自然也不能正常显示,现在问题是也不能用Jbuilder的Archive Builder来把applet所需要调用的swing类包含到JAR中。

  但也不是没有办法,一个较为简单的办法是装jre(Java Runtime Environment ),但是这个办法的缺点是要让每一个要浏览该applet的机器都要安装jre。另一个办法是重新复制编译一次swing类,生成自己的类,这样就可以被JAR打包时所包含到了,当然这需要的较多的时间和精力,这里举一个较为简单的例子,假如在applet里使用Jbutton,那么先把jdk里面一个src.jar这个文件解压,再在目录javax,swing下,找到Jbutton.java文件,查看它的源码,并把所有涉及到的swing类都复制到一个目录下,改变每一个文件的package属性。再编译,通过了就说明找到的文件全了,没有通过就必须再找到,直到不再编译出错为止。最后从applet引用这个已经编译的class,而不再用swing。似乎这个办法是笨了点,但对大家熟悉java是很有帮助的。

  差不多JAR的用法可以说把握到这样就可以了,当然还有更出色的应用,如与数字签名结合可以突破以往对applet的限制,甚至可以访问本地硬盘,网络等等。假如大家对此感爱好,我也会在稍后的文章中对数字签名和JAR的结合跟大家作一个较为详尽的探讨。进入讨论组讨论。
上一篇:Java源码解读之util.ArrayList 人气:397
下一篇:java学习体悟 人气:345
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-6 Movie34电影搜索引擎 v3.0
2008-9-6 wap2.0仿帝国建站喜用 v2.0
2008-9-6 免费人才招聘网 宽屏版 v3.01
2008-9-6 喜喔喔视频采集程序 v1.0 beta
2008-9-6 ASP客户管理系统
2008-9-6 主流驿站中秋祝福程序
2008-9-6 php实现msn协议的类
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵