作者H45 (!H45)
看板java
标题[站内] JavaFX Applet - Hello World
时间Sun Nov 16 13:31:48 2008
休息是为了走更长远的路;玩玩具是为了与新科技接轨 (误)
板上好像没什麽 JavaFX 的消息,不才我抱着玩玩具的心态,试图将一个以 JavaFX
撰写而成的应用程式布署於网际网路伺服器上,让使用者打开心爱的浏览器就能够看
见开发者辛辛苦苦制作的应用程式。
很可惜的是,本程式限定 Java 6.0 或以上的版本才有办法启动,那些 Java 5.0 或
1.4 以下的使用者将无缘接触 (看着 Linux 下的 Firefox.... 默,这一切都是微软
的阴矛啊啊啊!!) 咳咳,总之让咱们来看看....
/**
* Main.fx
*/
package helloworld;
import javafx.application.Application;
import javafx.application.Stage;
import javafx.scene.text.Text;
Application {
stage: Stage {
content: [
Text {
x: 20
y: 20
content: "Hello World"
}
]
}
}
程式说明:
一个程式,一个舞台,舞台的内容为:一个文字,落於 (20, 20), 文字内容是 "Hello
World".
若想要更深入地了解 JavaFX 请参考:
http://www.javafx.com/
http://javafx.com/releases/preview1/docs/reference/JavaFX-Language.html
http://javafx.com/releases/preview1/docs/api/
再简单不过的「哈罗世界」程式不是本文的重点,麻烦的地方在後头,究竟要如何将
这段程式当作一个 Applet 置入网页之中?虽然基本的概念和 Java 相同,但是作法却
繁杂了许多。
直接看我做出来的玩具吧:
http://chin.chang.yang.googlepages.com/hellojavafx.html
检视网页原始码,我所使用的网页标签如下:
hellojavafx.html
--------------------------------------------------------------------
<html>
<script src="
http://java.com/js/deployJava.js"></script>
<script>
var attributes = {
codebase:'
http://Chin.Chang.Yang.googlepages.com',
code:'javafx.application.Applet.class',
archive:'HelloWorld.jar, javafxrt.jar, Scenario.jar,
javafxgui.jar, javafx-swing.jar',
width:500,
height:500,
java_arguments:'-Djnlp.packEnabled=true'
};
var parameters = {
"ApplicationClass": "helloworld.Main",
"draggable":"true"};
var version = '1.6.0' ;
deployJava.runApplet(attributes, parameters, version);
</script>
</html>
这个网页利用 JavaScript 进行布署,输入三个参数:attributes, parameters, and
version 即可执行 Applet。不过我也只是参考别人所写的进行修改,以下网址:
http://learnjavafx.typepad.com/weblog/javafx_applets/
以上两个档案撰写完成之後,事情还没完,您还得把 Main.fx 打包成 HelloWorld.jar
伴随 javafxrt.jar, Scenario.jar, javafxgui.jar, javafx-swing.jar, and
hellojavafx.html 一起放在
http://Chin.Chang.Yang.googlepages.com (视您的环境
而定) 下面。这样才完成了整个程式的建置,接下来打开心爱的浏览器,看看辛辛苦苦
的建置有没有生效吧!
若您看见 Hello World, 恭喜!您可以回去继续读书或工作了! (难不成还想玩啊 XD)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13