据我了解,在 JavaFX 中复制节点应该使用该Duplicator.duplicate
函数完成。
例如,在复制其类型包含在 JavaFX 库中的节点时,它可以正常工作
def dup = Duplicator.duplicate(Rectangle{x:30 y:30 width:100 height:100});
dup.translateX = 10;
insert dup into content;
将在场景中插入一个黑色矩形。
但是,如果我以下列方式定义一个新类:
class MyRect extends Rectangle {}
或者
class MyRect extends CustomNode {
override function create() {Rectangle{x:30 y:30 width:10 height:10}}
}
它给了我以下运行时错误
Type 'javafxapplication1.NumberGrid$MyRect' not found.
当然,类javafxapplication1.NumberGrid
所在的包和文件在哪里MyRect
。
Sun论坛上的这个人也有同样的问题,但我在那里没有看到任何答案。
或者也许我做错了,并且有更好的方法来复制自定义节点?
更新:尝试复制Group
工作,但尝试复制会Stack
产生相同的错误。
根据文档,它应该支持 include 支持的所有类型FXD
,Node
但也许它只支持Node
's 的一些后代?