Swing程序嵌入Html.doc_第1页
Swing程序嵌入Html.doc_第2页
Swing程序嵌入Html.doc_第3页
Swing程序嵌入Html.doc_第4页
Swing程序嵌入Html.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Swing程序嵌入Html/Jsp页面(转)对于一个Swing写的应用程序,在很多的工程中,是需要嵌入到页面的。这样不仅增加了交互性和界面可操作性,而且让程序更加人性化。而以往的界面嵌入,大多是以Applet为主的。但是对于Swing为主的程序,sun公司仍然是提供解决方案的。原理:页面代码: No Java 2 SDK, Standard Edition v 1.4 support for APPLET! 解释: 是IE浏览器推荐用来嵌入Applet的标签。这个标签中的URI以“clsid”开始,只有IE浏览器支持这个属性,其他浏览器都不支持。URI以“clsid”开始,表明这是一个ActiveX控件,只有Windows中的IE才识别的属性,代表注册表中一个注册的ActiveX类,“CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA”是SUN JRE安装时在Windows中注册的,代表SUN Java Plug-in 1.4.2。因此当IE解析到示例中的标签时,会通过注册表,查找到Java Plug-in,然后启动JRE,在当前位置渲染这个Applet。另外一个clsid值:“8AD9C840-044E-11D1-B3E9-00805F499D93”,代表当前最新的JRE版本。“codebase”属性指定了一个特定版本JRE的下载地址,当客户端机器上没有安装Java Plug-in时,会自动从这个地址下载安装Java Plug-in。“scriptable”属性用于指定Applet示例是否能与页面中的JavaScript交互。是Netscape Navigator 4.x浏览器支持的嵌入Applet的标签,其他浏览器很少支持这个标签的,因此实际应用的很少。这个标签不支持以内嵌Param标签的方式为Applet传递参数。因此,最上面的写法是一种折中的写法-为的是这种主流浏览器对Swing的支持。把Embed标签用Comment标签包含起来,放在Object标签内部。IE在解释Object标签时,会忽略Comment标签内的内容。而Netscape Navigator不能识别clsid、不能识别Comment标签,它会忽略忽略外层的Object标签和Comment标签,而只看到Embed标签的内容。这样,这段代码可以同时适应IE和Netscape Navigator两种浏览器。(对于其他浏览器的支持,这里先不讨论,可使用Object:java Tag)实战:示例1:Swing代码嵌入Htmldemo代码:import java.awt.*;import java.awt.event.*;import java.io.File;import javax.swing.*;public class Demo2 implements ActionListener Frame f = new Frame(文件复制!);JLabel l = new JLabel(选择文件:);JTextField tf = new JTextField(20);JButton b = new JButton(选择。);JFileChooser fd = new JFileChooser();public Demo2() fd.setDialogTitle(哈哈。); fd.setCurrentDirectory(new File(C:); double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth(); double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight(); b.addActionListener(this); f.setLayout(new FlowLayout(); f.add(l); f.add(tf); f.add(b); f.setLocation(int) lx / 2 - 150, (int) ly / 2 - 150); f.setSize(400, 400); f.setVisible(true); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );public void actionPerformed(ActionEvent e) if (e.getSource().equals(b) fd.setFileSelectionMode(JFileChooser.FILES_ONLY); /只能选择文件 int state = fd.showOpenDialog(null); if (state = 1) return;/ 撤销则返回 else File f = fd.getSelectedFile();/ f为选择到的文件 tf.setText(f.getAbsolutePath(); public static void main(String args) Demo2 d = new Demo2();然后编译。结构图在最下面:Demo2.java为源文件,而Demo2.class为生成的二进制文件,demo2.html为嵌入的html页面。它们都在D:aaa这个文件夹下。demo2.html代码: No Java 2 SDK, Standard Edition v 1.4 support for APPLET! 注意:中的和中的code=Demo2.class codebase=D:aaa 有个codebase的value属性-这个属性很重要,它指的是class文件所在的具体的路径,而的value仅指文件名。这里因为把class和html页面放在一个文件里面,所以,可以这样写: 另一个地方EMBED type=application/x-java-applet;jpi-version=1.4 width=400 height=400 align=baseline code=Demo2.class codebase=方便吧-用代替绝对路径。运行,出错!原因1.我们的Swing代码需要操作本地文件(JFileChooser ),java为了安全,是不允许这样做的。因此,需要修改一个文件。路径:比如java安装地址:C:Program FilesJavajre1.5.0_06libsecurity (注意:是jre不是jdk)修改 java.policy文件添加permission java.security.AllPermission;permission java.util.PropertyPermission file.en

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论