﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-FOR RECORD-文章分类-java周边</title><link>http://www.blogjava.net/dhc/category/37031.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 03 Jan 2009 18:06:39 GMT</lastBuildDate><pubDate>Sat, 03 Jan 2009 18:06:39 GMT</pubDate><ttl>60</ttl><item><title>开源协议的比较(BSD,Apache,GPL,LGPL,MIT)【转载】</title><link>http://www.blogjava.net/dhc/articles/249577.html</link><dc:creator>DHC</dc:creator><author>DHC</author><pubDate>Fri, 02 Jan 2009 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/dhc/articles/249577.html</guid><wfw:comment>http://www.blogjava.net/dhc/comments/249577.html</wfw:comment><comments>http://www.blogjava.net/dhc/articles/249577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dhc/comments/commentRss/249577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dhc/services/trackbacks/249577.html</trackback:ping><description><![CDATA[<div id="content-aw">
<div id="aw-page">
<div class="aw-tit clearfix"><script type="text/javascript">$(".rl-tit .Buttons").click(function(){$(".rl-tit ul").toggle();});</script></div>
<div class="post clearfix" style="font-size: 12px">
<p>当Adobe、Microsoft、Sun等一系列巨头开始表现出对&#8220;开源&#8221;的青睐时，&#8220;开源&#8221;的时代即将到来！</p>
<p>最初来自：http://www.sinoprise.com/read.php?tid-662-page-e-fpage-1.html（遗憾的是这个链接已经打不开了），我基本未改动，只是进行了一些排版和整理。<br />
参考文献：<a href="http://www.fsf.org/licensing/licenses/" modo="false">http://www.fsf.org/licensing/licenses/</a></p>
<p>现今存在的开源协议很多，而经过Open Source Initiative组织通过批准的开源协议目前有58种（<a href="http://www.opensource.org/licenses/alphabetical">http://www.opensource.org/licenses/alphabetical</a>）。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码，最好也是选择这些被批准的开源协议。</p>
<p>这里我们来看四种最常用的开源协议及它们的适用范围，供那些准备开源或者使用开源产品的开发人员/厂家参考。</p>
<p><strong>BSD开源协议（</strong><a href="http://www.fsf.org/licensing/licenses/index_html#OriginalBSD">original BSD license</a><strong>、</strong><a id="FreeBSD" href="http://www.freebsd.org/copyright/freebsd-license.html" name="FreeBSD">FreeBSD license</a><strong>、</strong><a id="OriginalBSD" href="http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6" name="OriginalBSD">Original BSD license</a><strong>）</strong></p>
<p>BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以&#8220;为所欲为&#8221;，可以自由的使用，修改源代码，也可以将修改后的代码作为开源或者专有软件再发布。</p>
<p>但&#8220;为所欲为&#8221;的前提当你发布使用了BSD协议的代码，或则以BSD协议代码为基础做二次开发自己的产品时，需要满足三个条件：</p>
<ol>
    <li>如果再发布的产品中包含源代码，则在源代码中必须带有原来代码中的BSD协议。
    <li>如果再发布的只是二进制类库/软件，则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
    <li>不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 </li>
</ol>
<p>BSD 代码鼓励代码共享，但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码，也允许使用或在BSD代码上开发商业软件发布和销售，因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议，因为可以完全控制这些第三方的代码，在必要的时候可以修改或者二次开发。</p>
<p><strong>Apache Licence 2.0（</strong><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>、<a href="http://www.apache.org/LICENSE-1.1" modo="false">Apache License, Version 1.1</a>、<a href="http://www.apache.org/LICENSE-1.0">Apache License, Version 1.0</a><strong>）</strong></p>
<p>Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似，同样鼓励代码共享和尊重原作者的著作权，同样允许代码修改，再发布（作为开源或商业软件）。需要满足的条件也和BSD类似：</p>
<ol>
    <li>需要给代码的用户一份Apache Licence
    <li>如果你修改了代码，需要再被修改的文件中说明。
    <li>在延伸的代码中（修改和有源代码衍生的代码中）需要带有原来代码中的协议，商标，专利声明和其他原来作者规定需要包含的说明。
    <li>如果再发布的产品中包含一个Notice文件，则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可，但不可以表现为对Apache Licence构成更改。 </li>
</ol>
<p>Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。</p>
<p><strong>GPL（</strong><a id="GNUGPL" href="http://www.fsf.org/licensing/licenses/gpl.html" name="GNUGPL" modo="false">GNU General Public License</a><strong>）</strong></p>
<p>我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用，但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux，包括商业公司的linux和linux上各种各样的由个人，组织，以及商业软件公司开发的免费软件了。</p>
<p>GPL协议的主要内容是只要在一个软件中使用(&#8221;使用&#8221;指类库引用，修改后的代码或者衍生代码)GPL 协议的产品，则该软件产品必须也采用GPL协议，既必须也是开源和免费。<strong>这就是所谓的&#8220;传染性&#8221;</strong>。GPL协议的产品作为一个单独的产品使用没有任何问题，还可以享受免费的优势。</p>
<p>由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议，对于使用GPL协议的开源代码，商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。</p>
<p>其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。</p>
<p><strong>LGPL（</strong><a id="LGPL" href="http://www.fsf.org/licensing/licenses/lgpl.html" name="LGPL">GNU Lesser General Public License</a><strong>）</strong></p>
<p>LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。</p>
<p>但是如果修改LGPL协议的代码或者衍生，则所有修改的代码，涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用，但不适合希望以LGPL协议代码为基础，通过修改和衍生的方式做二次开发的商业软件采用。</p>
<p>GPL/LGPL都保障原作者的知识产权，避免有人利用开源代码复制并开发类似的产品</p>
<p><strong>MIT（<a href="http://www.opensource.org/licenses/mit-license.php">MIT</a>）</strong></p>
<p>MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.</p>
<p id="gulink">本文来自：<a title="五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) - 整理" href="http://www.awflasher.com/blog/archives/939">http://www.awflasher.com/blog/archives/939</a></p>
</div>
</div>
</div>
<img src ="http://www.blogjava.net/dhc/aggbug/249577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dhc/" target="_blank">DHC</a> 2009-01-02 23:04 <a href="http://www.blogjava.net/dhc/articles/249577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>名词解释之JavaFX【转载】</title><link>http://www.blogjava.net/dhc/articles/249023.html</link><dc:creator>DHC</dc:creator><author>DHC</author><pubDate>Mon, 29 Dec 2008 15:36:00 GMT</pubDate><guid>http://www.blogjava.net/dhc/articles/249023.html</guid><wfw:comment>http://www.blogjava.net/dhc/comments/249023.html</wfw:comment><comments>http://www.blogjava.net/dhc/articles/249023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dhc/comments/commentRss/249023.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dhc/services/trackbacks/249023.html</trackback:ping><description><![CDATA[<div class="blog_title">
<h3 class="" title=""><a href="http://unixboy.javaeye.com/blog/163448"><span style="font-size: 8pt">JavaFX是什么？</span></a></h3>
</div>
<div class="blog_content">
<p><span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">JavaFX是什么？</span></span><br />
<br />
</strong>&#8220;JavaFX脚本是一种声明式、静态类型编程语言。它具有一等函数（first-class functions）、声明式的语法、列表推导（list-comprehensions）及基于依赖关系的增量式求值（incremental dependency-based evaluation）等特征。&#8221;JavaFX脚本为多种多样的操作提供了声明式、无中间程序逻辑的语法，这些操作包括创建2D动画、设置属性或者声明在模式和视图对象之间的绑定依赖关系。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">什么样的函数能够称为&#8220;first-class functions&#8221;?</span></span></strong><br />
<br />
在编程语言中，我们常常把那些将函数作为一等对象的函数称为一等函数（first-class functions）。具体地说，就是编程语言支持在程序执行过程中构造新的函数，并将它们存储在数据结构中作为其它函数的参数的传入参数，并在函数返回时将它们作为函数值返回。本概念并不涵盖任何语言和程序的外部函数或者程序，例如通过调用编译器或者一个eval函数来创建新函数。<br />
这里提供一等函数的一个简单示例：map或者mapcar函数，它使用一个函数和一个列表作为参数，然后将通过将函数应用到列表中的每个成员后形成的列表作为返回值。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">&#8220;declarative syntax&#8221;是什么意思? </span></span></strong><br />
<br />
与大多数依靠程序和显式代码来更新在变量或者属性之间关系的编程语言不同，声明式语言允许数值被声明为另一种方式。<br />
在JavaFX的一个示例：</span></p>
<pre class="overflow"><span style="font-size: 8pt">var a : Number = bind model.attrib/2;</span></pre>
<p><br />
<span style="font-size: 8pt">无论何时model.attrib的数值发生改变，a的数值都将自动、透明地更新，更新期间无需调用任何程序。这对于在模式和视图对象之间绑定依赖关系、控制GUI行为是特别有用的。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">&#8220;list-comprehensions&#8221;是什么意思? </span></span></strong><br />
<br />
我们常常把&#8220;list-comprehensions&#8221;翻译为&#8220;列表推导&#8221;。列表推导是在语言级别上支持以多种方式创建、维护列表的方法。<br />
在JavaFX中的一些示例：</span></p>
<pre class="overflow"><span style="font-size: 8pt">var nums = [1,2,3,4];
var nums2 = [1..4]; //same as above
var numsGreaterThanTwo = nums[. &gt; 2];
var numsLessThanFour = select n from n in nums where n &lt; 4; </span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">什么是"incremental dependency-based evaluation"? </span></span></strong><br />
<br />
&#8220;incremental dependency-based evaluation&#8221;译为&#8220;基于依赖关系的增量式求值&#8221;。在JavaFX中，属性值能够被声明为依赖于（绑定到）包含其它属性的表达式。这样，当某个被引用的属性数值发生变化时，所有依赖此属性的属性都将直接或者间接地改变它们的数值，此过程无需调用任何的中间程序逻辑。这和在Excel之类的电子表格中使用方程式很类似。<br />
这对于那些需要动态维护模式和视图属性，而又时常需要复杂的程序逻辑的GUI开发来说非常有用。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">&#8220;操作（operation）&#8221; vs &#8220;函数（function）&#8221;</span></span></strong><br />
<br />
函数与操作之间的不同之处是函数可以递增地反复求值、可以绑定返回值、绑定参数、绑定变量/属性，隐性绑定本地变量。<br />
为了进一步说明，请看下面的JavaFX代码片段：</span></p>
<pre class="overflow"><span style="font-size: 8pt">Class Foo (
&nbsp;&nbsp; attribute zap;
&nbsp;&nbsp; function bar(x) { x + zap }
}
var afoo = Foo { zap: 14 }
var zing = 1;
var snap = afoo.bar(zing);
bind dyn = afoo.bar(zing);</span></pre>
<p><br />
<span style="font-size: 8pt">我们非常清楚地看到：无论zing和zap如何变化，snap将不会发生变化。而dyn则会随着zing和zap的变化而改变。因为在zing和zap的数值发生变化时，发生了一个增量式的求值过程：程序将变化的数值传递给依赖其的所有函数，并重新计算数值。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX的授权模式是怎么的?</span></span></strong><br />
<br />
JavaFX的开发者很赞同让用户发布自己的应用，并坚信开源和社区的力量。但当前的JavaFX版本是在评估授权下发布的，因此并不能够被重新发布。你当然能够发布自己编写的基于JavaFX的应用，但不能够和JavaFX一起捆绑发布，并需要告之使用者：需要到openjfx项目站点下载JavaFX二进制代码库。并且，由于正处于早期的JavaFX代码还处在评估授权下，因此它不能用于商业用途。当Sun完成了JavaFX的商业化版本开发后，我相信这将会得到改变。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">Sun是否规定了发布JavaFX商业化产品的时间线?</span></span></strong><br />
<br />
很抱歉，目前没有准确的时间约定，不过马上就会制定出来。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX Runtime像JavaFX Script那样开源吗？</span></span></strong><br />
<br />
是的，JavaFX Runtime即将开放源代码。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">在JavaFX和&#8230;之间的不同</span></span></strong><br />
<br />
<strong>与F3比较：</strong>F3是Form Follows Function的缩写，这是JavaFX平台从前的名字。<br />
<br />
<strong>与Java比较：</strong>JavaFX 是一种兼容JSR-223的脚本语言。它能够使用Java类，并从Java类中被调用。<br />
<br />
<strong>与Java 6.0提供的Scriting Engine比较：</strong>Java 6.0提供的Scriting Engine为兼容JSR-223的脚本语言提供了运行平台，JavaFX可以在Java 6.0提供的Scriting Engine上执行。而JavaFX并不依赖于Java 6.0，它可以在任何兼容JSR-223的脚本引擎（比如javax.script.ScriptEngine）下执行。<br />
<br />
<strong>与SVG比较：</strong>SVG并不是一种程序语言；它是一种数据描述语言。其XML语法对于编程语言来讲是非常可怕的。但SVG的交互性、兼容性是令人满意的。目前JavaFX开发团队并没有计划直接使用SVG。由于SVG和JavaFX都源自旧的PostScript和Java2D向量图形模式，因此在某种程度上，我们已经在JavaFX中使用了SVG，但目前仍然存在某些值得注意的不兼容性。<br />
</span><a href="http://blogs.sun.com/chrisoliver/entry/javafx_svg_translator_preview" target="_new"><span style="font-size: 8pt">Chris Oliver 已经编写了SVG-to-F3 转换程序</span></a><span style="font-size: 8pt">。<br />
<br />
<strong>与Swing比较：</strong>JavaFX是一种编写Swing应用的新方式，它无需了解swing框架和java语言。<br />
<br />
<strong>与JavaScript比较：</strong>在JavaFX和JavaScript之间唯一相同点就是它们都是兼容JSR-223的脚本语言。<br />
<br />
<strong>与Ajax比较：</strong>Ajax是使用了JavaScript和异步更新的web浏览器端技术。它与JavaFX的关系：两者都是UI相关的技术。但它们在语言和环境上完全不同。<br />
<br />
<strong>与Savaje OS的关系：</strong>Sun正在计划使用它们购买的Saveje手机系统和JVM来发布JavaFX Mobile，后者能在移动设备上运行JavaFX脚本，它将成为Windows Mobile、Flash Lite的有力竞争者。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">我能够使用JavaFX编写Java3D应用吗？它兼容VRML或者X3D标准、Xj3D之类的代码库吗？ </span></span></strong><br />
<br />
没有原因不能使用。JavaFX能够和任何第三方代码库互操作，并且不需要任何特殊语法。目前JavaFX开发团队正在进行开发支持Java3D的功能。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX是一种RCP(Rich Client Platform) 吗? </span></span></strong><br />
<br />
是的。JavaFX不仅能够用于RCP开发，也能够用于RIA（Rich internet Applications）开发。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">我能够在web应用中使用JavaFX吗? </span></span></strong><br />
<br />
JavaFX能够用于编写前端应用、web应用的视图或者用户接口，不过这都需要JVM的支持。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX将代替Java EE中的JSF和JSP吗? </span></span></strong><br />
<br />
不，JSF和JSP用于编写纯粹的web应用（对于支持HTML的HTTP客户端来讲是可用的），而JavaFX需要位于客户端的JVM。如果你希望编写富客户端的话，那么就需要在客户端安装JRE，JavaFX能够提供与基于Flash的Flex、基于.net的Silverlight相同的功能。常见的应用场景是开发运行在公司内网的应用。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX在运行时需要服务器吗? </span></span></strong><br />
<br />
JavaFX是一种关注GUI的脚本语言；它主要用于桌面应用，因此不需服务器。如果你计划部署JNLP（Java Web Start）的话，那么你需要一台web服务器。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">运行JavaFX需要什么条件? </span></span></strong><br />
<br />
两种条件任选其一：<br />
Java5以上、一个兼容JSR-223的实现、JavaFX代码库；<br />
Java6以上、JavaFX代码库。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">目前有JavaFX可用的编译器吗? </span></span></strong><br />
<br />
OpenFX Compiler是JavaFX编译器项目，目前已经开放源代码。<br />
详细情况请访问：</span><a href="https://openjfx-compiler.dev.java.net/" target="_new"><span style="font-size: 8pt">https://openjfx-compiler.dev.java.net/</span></a><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 14px"><span style="color: blue">开发中遇到的问题</span></span></strong><br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX中有哪些固有的数据类型? </span></span></strong><br />
<br />
JavaFX中的固有数据类型：String、Boolean、Number、Integer。<br />
<br />
JavaFX与Java类型之间的对应关系： <br />
<img style="display: inline" alt="image" src="http://static.zooomr.com/images/3349259_6456beb09f_o.jpg?r=360" border="0" _counted="undefined" /><br />
更多信息请访问： <br />
</span><a href="https://openjfx.dev.java.net/JavaFX_Programming_Language.html#basic_types" target="_new"><span style="font-size: 8pt">https://openjfx.dev.java.net/JavaFX_Programming_Language.html#basic_types </span></a><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">如何连接两个字符串？&#8220;+&#8221;操作符已经不起作用了！？</span></span></strong><br />
<br />
与Java有所不同，JavaFX并没有重载&#8220;+&#8221;操作符来使其用于字符串连接：</span></p>
<pre class="overflow"><span style="font-size: 8pt">import javafx.ui.*;
import javafx.ui.canvas.*;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Frame {
&nbsp;&nbsp;&nbsp;&nbsp;content: Label {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text: "Hello " + "World"
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;visible: true
}
</span></pre>
<p><br />
<span style="font-size: 8pt">如果尝试运行上面的代码，我们将看到以下的控制台输出：</span></p>
<pre class="overflow"><span style="font-size: 8pt">compile thread: Thread[AWT-EventQueue-0,6,main]
compile 2.031
file:/C:/workspace/F3/HelloWorld.fx:6: incompatible types: expected Number, found String in "Hello "
file:/C:/workspace/F3/HelloWorld.fx:6: incompatible types: expected Number, found String in "World"
file:/C:/workspace/F3/HelloWorld.fx:6: incompatible types: expected String, found Number in text: "Hello " + "World"
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">实现方式之一：修改代码</span></span></strong><br />
<br />
Java实现方法：</span></p>
<pre class="overflow"><span style="font-size: 8pt">String s = "Your score is " + n + " out of " + total + ".";</span></pre>
<p><br />
<span style="font-size: 8pt">JavaFX的字符串表达式操作符{}实现连接字符串的功能： </span></p>
<pre class="overflow"><span style="font-size: 8pt">var s:String = "Your score is {n} out of {total}.";</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">实现方式之二：调用concat()方法</span></span></strong><br />
<br />
JavaFX提供了concat()方法来连接两个字符串：</span></p>
<pre class="overflow"><span style="font-size: 8pt">import javafx.ui.*;
import javafx.ui.canvas.*;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Frame {
&nbsp;&nbsp;&nbsp;&nbsp;content: Label {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text: "Hello ".concat("World")
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;visible: true
}
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">如何将字符串转换为数字? </span></span></strong><br />
<br />
目前没有直接的方式，但可以使用下面的代码：</span></p>
<pre class="overflow"><span style="font-size: 8pt">var value = new DecimalFormat("0").parse(someString);</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">如何将TextField的数值绑定到一个数字类型属性? </span></span></strong><br />
<br />
使用绑定:：</span></p>
<pre class="overflow"><span style="font-size: 8pt">var total = 10
TextField {
&nbsp;&nbsp; value: bind total
&nbsp;&nbsp; ...
}</span></pre>
<p><br />
<span style="font-size: 8pt">也可以使用format进行格式化：</span></p>
<pre class="overflow"><span style="font-size: 8pt">value: bind "{total format as &lt;&lt;#,##0&gt;&gt;}"</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">如何设置用在Java Web Start上的JavaFX? </span></span></strong><br />
<br />
JNLP (Java Network Launch Protocol)是一种基于XML的协议，它能够在网络上部署Java和JavaFX应用。<br />
这里提供一个用于部署JavaFXPad的JNLP示例。<br />
详细示例请见：</span><a href="http://download.java.net/general/openjfx/demos/javafxpad.jnlp" target="_new"><span style="font-size: 8pt">http://download.java.net/general/openjfx/demos/javafxpad.jnlp</span></a><span style="font-size: 8pt">) 。</span></p>
<pre class="overflow"><span style="font-size: 8pt">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;jnlp
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spec="1.5+"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;codebase="http://download.java.net/general/openjfx/demos"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;href="javafxpad.jnlp"&gt;
&nbsp;&nbsp;&lt;information&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;JavaFX Demos:JavaFX Pad&lt;/title&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;vendor&gt;Sun Microsystems&lt;/vendor&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;offline-allowed /&gt;
&nbsp;&nbsp;&lt;/information&gt;
&nbsp;&nbsp;&lt;security&gt;
&nbsp;&nbsp;&lt;all-permissions/&gt;&nbsp;&nbsp;
&nbsp;&nbsp;&lt;/security&gt;
&nbsp;&nbsp;
&nbsp;&nbsp;&lt;resources&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java-vm-args="-Xss1M -Xmx256M"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/j2se&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="javafxrt.jar" main="true"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="Filters.jar"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="swing-layout.jar"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="javafxpad.jar"/&gt;
&nbsp;&nbsp;&lt;/resources&gt;
&nbsp;&nbsp;&lt;application-desc main-class="net.java.javafx.FXShell"&gt;
&nbsp;&nbsp;&lt;argument&gt;javafxpad.Main&lt;/argument&gt;
&nbsp;&nbsp;&lt;/application-desc&gt;
&lt;/jnlp&gt;</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">&#8220;Hello Web Start FX&#8221;示例 </span></span></strong><br />
<br />
环境需求<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; Java 5 JDK <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; 从openjfx项目下载后获得的JavaFX代码包中提取出来的/lib/javafxrt.jar and lib/swing-layout.jar<br />
<br />
<strong><span style="font-size: 10px"><span style="color: green">&#8220;Hello Web Start JFX&#8221;程序代码</span></span></strong><br />
<br />
文件名: HelloWebStart.fx </span></p>
<pre class="overflow"><span style="font-size: 8pt">import javafx.ui.*;
Frame {
&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;&nbsp;: 'Hello Web Start JFX!'
&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;&nbsp;: 600
&nbsp;&nbsp;&nbsp;&nbsp;height : 400
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;content: Label {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text: 'Hello Web Start JFX!'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font: Font{size: 32}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;visible: true
}
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">创建 HelloWebStartJFX.jar </span></span></strong><br />
</span></p>
<pre class="overflow"><span style="font-size: 8pt">jar cvf HelloWebStartJFX.jar HelloWebStart.fx</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">创建 HelloWebStartJFX.jnlp </span></span></strong><br />
<br />
文件名: HelloWebStartJFX.jnlp </span></p>
<pre class="overflow"><span style="font-size: 8pt">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;jnlp spec="1.5+"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;codebase="http://www.example.com/HelloWebStartJFX/"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;href="HelloWebStartJFX.jnlp"&gt;
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;information&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Hello Web Start JFX&lt;/title&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;vendor&gt;John Doe&lt;/vendor&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;homepage href="http://www.example.com/HelloWebStartJFX/"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Web Start example for JavaFX Scripts&lt;/description&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;offline-allowed/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/information&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;security&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;all-permissions/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/security&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;resources&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/j2se&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="javafxrt.jar" main="true"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="swing-layout.jar"/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jar href="HelloWebStartJFX.jar"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resources&gt;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;application-desc main-class="net.java.javafx.FXShell"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;argument&gt;HelloWebStart&lt;/argument&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/application-desc&gt;
&lt;/jnlp&gt;
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">创建签名密钥 </span></span></strong><br />
</span></p>
<pre class="overflow"><span style="font-size: 8pt">keytool -genkey -alias jfx -dname "CN=John Doe, O=JFX Inc." -validity 9999 -keystore jfx.keystore -keypass keyPassword -storepass storePassword</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">对jar文件进行签名</span></span></strong><br />
</span></p>
<pre class="overflow"><span style="font-size: 8pt">jarsigner -keystore jfx.keystore -verbose -keypass keyPassword -storepass storePassword HelloWebStartJFX.jar jfx
jarsigner -keystore jfx.keystore -verbose -keypass keyPassword -storepass storePassword javafxrt.jar jfx
jarsigner -keystore jfx.keystore -verbose -keypass keyPassword -storepass storePassword swing-layout.jar jfx
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">连接到HelloWebStartJFX.jnlp </span></span></strong><br />
<br />
文件名: index.html </span></p>
<pre class="overflow"><span style="font-size: 8pt">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
&nbsp;&nbsp;&nbsp;&nbsp; "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&nbsp;&nbsp;&lt;head&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Hello Web Start JFX!&lt;/title&gt;
&nbsp;&nbsp;&lt;/head&gt;
&nbsp;&nbsp;
&nbsp;&nbsp;&lt;body&gt;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Hello Web Start JFX!&lt;/h1&gt;
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;&lt;a href="HelloWebStartJFX.jnlp"&gt;Java Web Start: Hello Web Start JFX!&lt;/a&gt;&lt;/p&gt;
&nbsp;&nbsp;&lt;/body&gt;
&lt;/html&gt;
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">Web服务器: 设置用于.jnlp 的MIME类型 </span></span></strong><br />
<br />
Apache服务器:在http.conf 或者 .htaccess文件中添加类型：</span></p>
<pre class="overflow"><span style="font-size: 8pt">application/x-java-jnlp-file JNLP</span></pre>
<p><br />
<br />
<span style="font-size: 8pt">将文件复制到Web服务器 </span></p>
<pre class="overflow"><span style="font-size: 8pt">mkdir /www/www.example.com/docs/HelloWebStartJFX/
cp index.html HelloWebStartJFX.jnlp HelloWebStartJFX.jar javafxrt.jar swing-layout.jar /www/www.example.com/docs/HelloWebStartJFX/
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">启动Web Start </span></span></strong><br />
<br />
通过www.example.com/HelloWebStartJFX/启动web Start。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">如何使用&#8220;全限定名&#8221;引用Java类? </span></span></strong><br />
<br />
全限定Java类名必须使用法语引号&lt;&lt; &gt;&gt;进行修饰。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">如何访问内部类和接口? </span></span></strong><br />
<br />
在访问内部类和接口时，你只能使用内部类的编译名。<br />
例如： <br />
在Java中的import java.util.Map.Entry，在JavaFX中将表示为import java.util.Map$Entry。<br />
<br />
在JavaFX中还需要注意的是在引用内部类时，你需要继续使用Outer$Inner 这种形式的语法。为了方便使用，你也可以相应地将导入语句修改为：</span></p>
<pre class="overflow"><span style="font-size: 8pt">import java.util.Map$Entry as Entry</span></pre>
<p><br />
<span style="font-size: 8pt">这样就不必重复地使用Outer$Inner形式了。<br />
我能够使用Java 5的枚举（enumerations）吗? <br />
当然可以。你可以采用下面的方式引用它们：</span></p>
<pre class="overflow"><span style="font-size: 8pt">&nbsp;&nbsp; import java.util.management.MemoryType; // 导入枚举
&nbsp;&nbsp;
&nbsp;&nbsp; var value = HEAP:MemoryType; // 使用枚举值
&nbsp;&nbsp; // HEAP是MemoryType中的枚举值
&nbsp;&nbsp;
&nbsp;&nbsp; var allValues = MemoryType.values(); // 创建包含所有枚举值的JavaFX数组
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">如何在JavaFX中轻松定制Swing组件?</span></span></strong><br />
<br />
这里提供了一些对Swing组件进行快速封装的代码，它能用于JavaFX组件层中：<br />
<br />
<strong><span style="font-size: 10px"><span style="color: green">SwingWidget类定义：</span></span></strong><br />
<br />
文件名：SwingWidget.fx</span></p>
<pre class="overflow"><span style="font-size: 8pt">package a.b.c;
import javafx.ui.*;
import javax.swing.JComponent;
class SwingWidget extends Widget {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute swingComponent: JComponent;
}
operation SwingWidget.createComponent():&lt;&lt;javax.swing.JComponent&gt;&gt; {
&nbsp;&nbsp;&nbsp;&nbsp;return swingComponent;
}
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">用法：</span></span></strong><br />
<br />
下面提供了一个使用SwingWidget的简单示例。请注意在树形列表中提供的数据来自于默认的树形模型，而不是JavaFX所特有的。<br />
文件名：WidgetTest.fx</span></p>
<pre class="overflow"><span style="font-size: 8pt">package a.b.c;
import javafx.ui.*;
import javafx.ui.canvas.*;
import java.lang.System;
import javax.swing.JTree;
import a.b.c.SwingWidget;
Frame {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onClose: operation() {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(0);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content: SwingWidget {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swingComponent: new JTree()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; visible: true
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: "WTF, the Widget Test Framework"
}
</span></pre>
<p><br />
<span style="font-size: 8pt">运行界面：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="display: inline" alt="image" src="http://images.wikia.com/jfx/images/c/c5/SwingWidgetExample.png" border="0" _counted="undefined" /><br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">为什么我的某些.fx文件不能被JavaFX Pad重新装载?</span></span></strong><br />
<br />
非常抱歉地告诉你，JavaFXPad目前的功能非常有限。他并不能检测到外部文件的改变。为了让它能够&#8220;看到&#8221;你的修改，你需要以手工的方式在JavaFXPad中重新打开修改后的文件。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">如何引用其它JavaFX文件?</span></span></strong><br />
<br />
JavaFX能够从以下三种资源中引用静态值、变量和类：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.在同一文件内<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.在相同的目录/包路径下的文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.在其它的包路径下的文件<br />
<br />
首先，第一种方式非常简单。如果你正在引用处于相同文件中的类，那么你只需要使用类名即可（类可以被定义在引用之前或者之后）。而变量则要在它们被声明之后才能被引用。<br />
<br />
对于第二种方式，显而易见，你无须对处于相同包路径下的每个.fx文件都使用import语句，而只要提供具有它们所在的同一包路径的import语句即可。<br />
<br />
如果你有其它的内部类或者你需要从不同的包路径下引入类，那么就需要使用import语句完成一点额外工作：使用import语句将.fx文件导入，而不是在此文件中的某个特定的类。例如，如果MediaTable.fx包含两个类：MediaTableColumn和MediaTableRow，那么你只需要importing MediaTable这一条语句就可以导入这两个类。<br />
<br />
你也可以像使用Java一样使用 import *语句。但由于这种方式降低了代码的可读性，所以并不推荐给大家。<br />
<br />
<strong><span style="font-size: 12px"><span style="color: green">JavaFX脚本提供类似 __LINE__这样的魔术常量（magic constants）吗? </span></span></strong><br />
<br />
<strong><span style="font-size: 10px"><span style="color: green">魔术常量</span></span></strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; __DIR__ -- 返回包含当前FX源文件的目录的URL。如果当前文件是从jar文件装载的，那么返回值可能是jar文件的URL。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; __FILE__ -- 返回当前源文件的URL。 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; __LINE__ -- 返回当前源文件中的当前行。 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; __ARCHIVE__ -- 返回包含当前文件的jar文件的URL。<br />
<br />
<strong><span style="font-size: 10px"><span style="color: green">示例</span></span></strong><br />
</span></p>
<pre class="overflow"><span style="font-size: 8pt">import javafx.ui.*;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Frame {
&nbsp;&nbsp;&nbsp;&nbsp;title&nbsp;&nbsp;: 'Magic Constants'
&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;&nbsp;: 700
&nbsp;&nbsp;&nbsp;&nbsp;height : 400
&nbsp;&nbsp;&nbsp;&nbsp;content: Label {text: "&lt;html&gt;&lt;dl&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dt&gt;__DOCBASE__&lt;/dt&gt;&lt;dd&gt;{__DOCBASE__}&lt;/dd&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dt&gt;__DIR__&lt;/dt&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dd&gt;{__DIR__}&lt;/dd&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dt&gt;__FILE__&lt;/dt&gt;&nbsp;&nbsp; &lt;dd&gt;{__FILE__}&lt;/dd&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dt&gt;__LINE__&lt;/dt&gt;&nbsp;&nbsp; &lt;dd&gt;{__LINE__}&lt;/dd&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dt&gt;__ARCHIVE__&lt;/dt&gt;&lt;dd&gt;{__ARCHIVE__}&lt;/dd&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dl&gt;&lt;/html&gt;"}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;visible: true
}// Frame
</span></pre>
<p><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 10px"><span style="color: green">更多信息</span></span></strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226; </span><a href="https://openjfx.dev.java.net/servlets/ReadMsg?list=users&amp;msgNo=649" target="_new"><span style="font-size: 8pt">Christopher Oliver编写的"Magic Constants" </span></a><br />
<br />
<span style="font-size: 8pt"><strong><span style="font-size: 12px"><span style="color: green">JavaFX中的保留字有哪些？</span></span></strong><br />
<br />
after<br />
and<br />
as<br />
assert<br />
attribute<br />
before<br />
bind<br />
break<br />
by<br />
catch<br />
class<br />
continue<br />
delete<br />
distinct<br />
do<br />
dur<br />
easeboth<br />
easein<br />
easeout<br />
else<br />
endif<br />
extends<br />
false<br />
finally<br />
first<br />
for<br />
foreach<br />
format<br />
fps<br />
from<br />
function<br />
if<br />
import<br />
in<br />
index<br />
indexof<br />
insert<br />
instanceof<br />
into<br />
inverse<br />
last<br />
later<br />
lazy<br />
linear<br />
motion<br />
nodebug<br />
new<br />
not<br />
null<br />
on<br />
operation<br />
or<br />
order<br />
package<br />
private<br />
protected<br />
public<br />
readonly<br />
return<br />
reverse<br />
select<br />
sizeof<br />
super<br />
then<br />
this<br />
throw (请注意不是throws)<br />
trigger<br />
true<br />
try<br />
typeof<br />
unitinterval<br />
valueof<br />
var<br />
where<br />
while<br />
xor</span></p>
</div>
    <img src ="http://www.blogjava.net/dhc/aggbug/249023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dhc/" target="_blank">DHC</a> 2008-12-29 23:36 <a href="http://www.blogjava.net/dhc/articles/249023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>