技术开发 频道

JavaFX开发应用中的问题答疑

如何在JavaFX中轻松定制Swing组件?

这里提供了一些对Swing组件进行快速封装的代码,它能用于JavaFX组件层中:

SwingWidget类定义:

文件名:SwingWidget.fx
package a.b.c;import javafx.ui.*;import javax.swing.JComponent;class SwingWidget extends Widget { attribute swingComponent: JComponent;}operation SwingWidget.createComponent():<<javax.swing.JComponent>> { return swingComponent;}
用法:

下面提供了一个使用SwingWidget的简单示例。请注意在树形列表中提供的数据来自于默认的树形模型,而不是JavaFX所特有的。
文件名:WidgetTest.fx

运行界面:

为什么我的某些.fx文件不能被JavaFX Pad重新装载?

非常抱歉地告诉你,JavaFXPad目前的功能非常有限。他并不能检测到外部文件的改变。为了让它能够“看到”你的修改,你需要以手工的方式在JavaFXPad中重新打开修改后的文件。

如何引用其它JavaFX文件?

JavaFX能够从以下三种资源中引用静态值、变量和类:
1.在同一文件内
2.在相同的目录/包路径下的文件
3.在其它的包路径下的文件

首先,第一种方式非常简单。如果你正在引用处于相同文件中的类,那么你只需要使用类名即可(类可以被定义在引用之前或者之后)。而变量则要在它们被声明之后才能被引用。

对于第二种方式,显而易见,你无须对处于相同包路径下的每个.fx文件都使用import语句,而只要提供具有它们所在的同一包路径的import语句即可。

如果你有其它的内部类或者你需要从不同的包路径下引入类,那么就需要使用import语句完成一点额外工作:使用import语句将.fx文件导入,而不是在此文件中的某个特定的类。例如,如果MediaTable.fx包含两个类:MediaTableColumn和MediaTableRow,那么你只需要importing MediaTable这一条语句就可以导入这两个类。

你也可以像使用Java一样使用 import *语句。但由于这种方式降低了代码的可读性,所以并不推荐给大家。

JavaFX脚本提供类似 __LINE__这样的魔术常量(magic constants)吗?

魔术常量

• __DIR__ -- 返回包含当前FX源文件的目录的URL。如果当前文件是从jar文件装载的,那么返回值可能是jar文件的URL。
• __FILE__ -- 返回当前源文件的URL。
• __LINE__ -- 返回当前源文件中的当前行。
• __ARCHIVE__ -- 返回包含当前文件的jar文件的URL。

示例

import javafx.ui.*; Frame { title : 'Magic Constants' width : 700 height : 400 content: Label {text: "<html><dl> <dt>__DOCBASE__</dt><dd>{__DOCBASE__}</dd> <dt>__DIR__</dt> <dd>{__DIR__}</dd> <dt>__FILE__</dt> <dd>{__FILE__}</dd> <dt>__LINE__</dt> <dd>{__LINE__}</dd> <dt>__ARCHIVE__</dt><dd>{__ARCHIVE__}</dd> </dl></html>"} visible: true}// Frame

更多信息

• Christopher Oliver编写的"Magic Constants"

JavaFX中的保留字有哪些?

after
and
as
assert
attribute
before
bind
break
by
catch
class
continue
delete
distinct
do
dur
easeboth
easein
easeout
else
endif
extends
false
finally
first
for
foreach
format
fps
from
function
if
import
in
index
indexof
insert
instanceof
into
inverse
last
later
lazy
linear
motion
nodebug
new
not
null
on
operation
or
order
package
private
protected
public
readonly
return
reverse
select
sizeof
super
then
this
throw (请注意不是throws)
trigger
true
try
typeof
unitinterval
valueof
var
where
while
xor

查看原文

0
相关文章