使用 Rhino 特性
Rhino有很多通过标准的ECMAScript解释器支持的特性,并且这个特性可以在batik中使用 。
一个有用的特性是ECMAScript 代码可以使用java类和对象, 并且不仅仅是标准的ECMAScript
原始类型和通过Batik的主机对象扩展。
要从ECMAScript 中创建一个java类实例,你首先需要导入它存在的包。这个实现要使用Rhino
提供的importPackage 全局函数. 举个例子, 要导入javax.swing.JFrame 类, 你使用:
importPackage(Packages.javax.swing);
然后暴露在javax.swing保重每个类的一个全局属性,这个属性你可以用来创建一个新的这个
类的对象, 类似于在java中的import javax.swing.*;声明。我们可以使用暴露的Jframe
属性来创建一个新的这个类的实例 :
var frame = new JFrame("My test frame");
注意怎样将一个ECMAScript 字符串值,转换为 JFrame’s 构造器的一个参数. Rhino
将试图转换ECMAScript 值到适当的java原始类型或者对象用来在构造器或者方法调用下制造。
在这个实例中 ECMAScript字符串值被转换为一个 java.lang.String 对象以便传给解释器。
注意,在这我们涉及到java对象,我们可以象我们在java源码中那样调用它的任何方法。下面
这个完整的例子将论证这个,例子主要是点击一个绿色的圆,将弹出一个frame。 xml 代码
- <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
- <circle cx="50" cy="50" r="50" fill="green" onclick="showFrame()"/>
- <script type="text/ecmascript">
- importPackage(Packages.javax.swing);
- function showFrame() {
- var frame = new JFrame("My test frame");
- var label = new JLabel("Hello from Java objects created in ECMAScript!");
- label.setHorizontalAlignment(SwingConstants.CENTER);
- frame.getContentPane().add(label);
- frame.setSize(400, 100);
- frame.setVisible(true);
- frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- }
- </script>
- </svg>
分享到:
相关推荐
**Batik框架详解** Batik是Apache软件基金会开发的一个开源项目,主要专注于SVG(Scalable Vector Graphics)标准的实现。SVG是一种基于XML的矢量图形格式,它允许创建高质量、可缩放的图形,广泛应用于网页设计、...
4. **xml-apis-ext-1.3.04.jar**:这个库扩展了XML API,提供了对XML规范的额外支持,例如XML Infoset和XML Schema。对于处理SVG,它能提供更全面的XML处理能力。 5. **commons-io-1.3.1.jar**:Apache Commons IO...
batik-anim batik-awt-util batik-bridge batik batik-codec batik-css batik-dom batik-ext batik-extension batik-gui-util batik-gvt batik-parser batik-rasterizer batik-script batik-svg-dom batik-...
4. **SVG到其他格式的转换**: Batik的`Transcoder`接口和相关的实现类,如`JPEGTranscoder`或`PNGTranscoder`,可以将SVG转换为位图格式(如JPEG、PNG)。你需要创建一个`TranscoderInput`对象表示输入的SVG文件,...
4. 转换工具: Batik提供了将SVG与其他图像格式(如PDF、GIF、JPEG等)相互转换的工具。 5. 基于XPath和XSLT的支持: Batik支持使用XPath查询SVG文档,并且可以结合XSLT进行文档转换。 6. 字体服务: Batik提供了...
**Batik相关jar包详解** 在Java开发中,Batik是一个非常重要的开源工具包,它由Apache软件基金会提供,主要用于处理SVG(Scalable Vector Graphics)格式的图像。SVG是一种基于XML的矢量图形标准,它允许开发者创建...
**基于Batik的Java客户端程序** 在Java开发中,有时候我们需要处理SVG(Scalable Vector Graphics)这种矢量图格式的图像。SVG由于其可缩放性和清晰度,被广泛用于网页设计和图形用户界面。 Batik是Apache软件基金...
包括:batik-all-1.11.jar,batik-anim-1.11.jar,batik-codec-1.11.jar,batik-constants-1.11.jar,batik-svgbrowser-1.11.jar batik-swing-1.11.jar,fop-transcoder-allinone-2.3.jar 等等, 特分享出来供大家一起学习...
batik-all.jar
batik-anim-1.7.jar batik-awt-util-1.7.jar batik-bridge-1.7.jar batik-codec-1.7.jar batik-css-1.7.jar batik-dom-1.7.jar batik-ext-1.7.jar batik-gvt-1.7.jar batik-js-1.7.jar batik-parser-1.7.jar batik-...
4. **SVG生成器(SVG Generator)**: Batik可以将非SVG图形(如Swing组件或Java2D绘制)转换为SVG,这对于创建跨平台的图形输出非常有用。 5. **SVG字体**: Batik包含了对SVG字体的支持,允许在SVG文档中使用...
Batik是使用svg格式图片来实现各种功能的应用程序以及Applet提供的一个基于java的工具包。 通过Batik,你可以在JAVA可以使用的地方操作SVG文档,您还可以在你的应用程序使用Batik模块来生成 , 处理和转码SVG图像。...
4. **SVG生成器**: Batik也提供了生成SVG文档的功能,允许程序动态创建SVG图形,这对于动态数据可视化和Web应用尤其有用。 5. **Rasterizer工具**: Batik的Rasterizer工具能够将SVG文件批量转换为位图图像,这在...
Batik 是为想使用 svg 格式图片来实现各种功能的应用程序和 Applet 提供的一个基于 java 的工具包。 工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的 svg 解决方案的核心模块。模块主要有 ...
import org.apache.batik.transcoder.Transcoder; import org.apache.batik.transcoder.TranscoderException; import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder....
org.apache.batik包 batik包,用于生成svg格式的文件,实现svg,swf转png ,提供word to html
Batik是为想使用svg格式图片来实现各种功能的应用程序和Applet提供的一个基于java的工具包。 工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的svg解决方案的核心模块。模块主要有SVGParser,...
org.apache.batik.transcoder-1.6.0.jar
batik-1.7 batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7
batik-all-1.7.jar包含了batik-1.7.jar