对于一个Swing写的应用程序,在很多的工程中,是需要嵌入到页面的。这样不仅增加了交互性和界面可操作性,而且让程序更加人性化。
而以往的界面嵌入,大多是以Applet为主的。但是对于Swing为主的程序,sun公司仍然是提供解决方案的。
原理:
页面代码:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="400" height="300" align="baseline"
codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn">
<PARAM NAME="code" VALUE="Example.class">
<PARAM NAME="codebase" VALUE="\">
<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">
<PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz">
<PARAM NAME="scriptable" VALUE="true">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=1.4" width="400"
height="300" align="baseline" code="Example.class" codebase="\"
model="models/HyaluronicAcid.xyz"
pluginspage="http://java.sun.com/j2se/1.4/download.html">
<NOEMBED>
No Java 2 SDK, Standard Edition v 1.4 support for APPLET!!
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
解释:
<OBJECT> 是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交互。
<EMBED >是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代码嵌入Html
demo代码:
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代码:
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="400" height="300" align="baseline"
codebase="http://java.sun.com/products/plugin/1.4/jinstall-14-win32.cab#Version=1,4,0,mn">
<PARAM NAME="code" VALUE="Demo2.class">
<PARAM NAME="codebase" VALUE="D:\aaa">
<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4">
<PARAM NAME="model" VALUE="models/HyaluronicAcid.xyz">
<PARAM NAME="scriptable" VALUE="true">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=1.4" width="400"
height="400" align="baseline" code="Demo2.class" codebase="D:\aaa"
model="models/HyaluronicAcid.xyz"
pluginspage="http://java.sun.com/j2se/1.4/download.html">
<NOEMBED>
No Java 2 SDK, Standard Edition v 1.4 support for APPLET!!
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
注意:
<OBJECT>中的<PARAM NAME="codebase" VALUE="D:\aaa">和<EMBED >中的code="Demo2.class" codebase="D:\aaa" 有个codebase的value属性------这个属性很重要,它指的是class文件所在的具体的路径,而<PARAM NAME="code" VALUE="Demo2.class">的value仅指文件名。
这里因为把class和html页面放在一个文件里面,所以,可以这样写:
<PARAM NAME="codebase" VALUE="|\"> 另一个地方
<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 Files\Java\jre1.5.0_06\lib\security (注意:是jre不是jdk)
修改 java.policy文件
添加
permission java.security.AllPermission;
permission java.util.PropertyPermission "file.encoding", "read";
OK!通过!
但是,在页面左上角的Applet载入中出现红叉,Swing程序却弹出在页面之上。解决:
1.消除红叉------只要Swing程序集成Applet就OK了。
public class Demo2 extends Applet implements ActionListener
来源于:http://kathy198908.blog.hexun.com/32350196_d.html
分享到:
相关推荐
在Java编程中,Swing库提供了丰富的组件来创建桌面应用程序,但默认情况下它不支持直接显示HTML内容。然而,通过引入第三方库,如DJ Native Swing,我们可以实现在Swing应用中嵌入HTML的功能,这对于创建复杂的用户...
标题中的“用javascript编写swing程序源码”表明这是一个关于使用JavaScript来实现Java Swing程序的示例。Java Swing是一个用于创建图形用户界面(GUI)的Java库,而JavaScript通常用于前端Web开发。这里的创新之处...
JSP(JavaServer Pages)是一种基于Java技术的动态网页开发标准,它允许开发者在HTML代码中嵌入Java代码,以实现服务器端的动态处理。在这个“JSP商城管理网站”中,开发者可能使用了JSP技术来构建前端界面,提供...
JSP(JavaServer Pages)是Java的一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,从而实现在服务器端处理数据并生成动态网页。在这个项目中,我们将使用JSP来处理图片加水印的操作。 在描述中提到"j2ee...
JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的业务逻辑处理。以下是学习JSP的具体步骤和需要注意的问题: 1. 理解基础:首先,你需要掌握Java语言的基础知识,因为JSP是基于Java的...
2. **JSP与Servlet**: JSP页面通常包含HTML、CSS、JavaScript以及嵌入的Java代码,负责展示动态内容。Servlet在服务器端运行,处理JSP提交的请求,执行业务逻辑,并将结果返回给JSP。 3. **MySQL数据库操作**: 使用...
JSP是一种动态网页开发技术,它允许开发者使用HTML或XML等标记语言来创建网页,并通过嵌入Java代码来实现动态内容的生成。在**JavaPagesServlet**的框架下,JSP与Servlet紧密协作,提供了高效且灵活的Web应用开发...
- **JSP对象与脚本**:学习如何使用JSP内置对象和脚本编写动态页面。 - **分布式应用**:理解如何构建分布式应用架构。学习时间为4至6周。 ##### 7. 更多JSP服务器 - **其他服务器**:除了Tomcat之外,还可以探索...
在IT行业中,Java Server Pages(JSP)是一种广泛使用的服务器端脚本语言,它允许开发者在HTML或XML文档中嵌入Java代码,从而创建动态、交互式的网页。本资源"JSP实现的网页特效(很多)"显然是一系列利用JSP技术...
在JavaServer Pages (JSP) 中使用AWT(Abstract Window Toolkit)类来画图是一种将图形界面元素嵌入到Web应用程序中的技术。AWT是Java早期的图形用户界面(GUI)库,虽然在Swing和JavaFX等现代库出现后使用较少,但...
JFreeChart 是一个强大的Java图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,用于在Java应用程序、Swing组件以及Web应用如JSP中展示数据。在"JFreeChart JSP应用例子"中,我们将深入探讨如何在...
3. **嵌入到JSP**:将生成的图表图片URL或SVG代码嵌入到JSP页面中。 #### 五、注意事项 - **版本兼容性**:确保使用的JFreeChart版本与Java环境和其他依赖库兼容。 - **图表样式自定义**:JFreeChart提供了丰富的...
1. **JSP页面**:这些页面包含HTML结构,用JSP指令、脚本元素和EL表达式来嵌入Java代码。它们负责展示用户界面,接受用户输入,并与服务器进行通信。 2. **Servlet**:作为JSP背后的控制器,Servlet处理HTTP请求,...
JSP是Java平台上的动态网页技术,允许开发者在HTML或XML文档中嵌入Java代码,以实现服务器端的业务逻辑和数据处理。对于图片旋转的需求,通常会借助于Java的图像处理库,如Java AWT(Abstract Window Toolkit)和...
JSP文件包含了静态的HTML或XML代码以及嵌入的Java代码,这些Java代码可以是脚本元素(scriptlets)、表达式或者是声明。当用户请求一个JSP页面时,Web服务器会将JSP转换为对应的Servlet(Java类),然后执行这个...
JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现动态内容的生成。JSP是Java EE(Enterprise Edition)平台的一部分,主要用于构建Web应用程序...
- JSP是一种基于Java的技术,它将静态HTML和动态Java代码结合在一起,使得开发者可以方便地在网页中嵌入服务器端的逻辑。 - JSP文件由两部分组成:静态内容(HTML、CSS、JavaScript)和动态内容(Java代码)。 - ...
学习者将学习如何在JSP页面中嵌入Java表达式、脚本片段和指令,以及如何使用JSP标签库(Tag Libraries)和Servlet进行服务器端处理。 6. **J2EE(Java Platform, Enterprise Edition)**: J2EE是用于构建分布式...
JSP(JavaServer Pages)是一种基于Java的动态网页技术,它允许开发人员在HTML、XHTML或XML文档中嵌入Java代码,从而实现服务器端的编程。对于初学者来说,学习JSP需要掌握以下几个关键知识点: 1. **Web服务器基础...
- **JSP 文件**:生成帮助页面。 - **测试服务器端帮助**:验证帮助内容是否正确加载。 - **结束语**:总结了使用JavaHelp 2.0构建帮助系统的要点。 以上内容总结了从Swing界面设计之JTree相关的知识点,包括如何...