我在JavaFX序列中添加项目时遇到了一个奇怪的问题,代码如下,
import javafx.scene.shape.*;
import javafx.scene.Group;
var seq = [Circle{}, Path{}, Rectangle{}, Ellipse{}];
var test1 = Group{};
var test2 = Group{};
function run(args : String[]) {
test1.content = seq;
test2.content = seq;
println("sizeof test1: {sizeof test1.content}");
println("sizeof test2: {sizeof test2.content}");
}
似乎很简单:序列'seq'包含4个节点。现在我希望将seq项分别传递给两组test1和test2。但是输出结果真的很奇怪,
sizeof test1: 0
sizeof test2: 4
在赋值test1.content = seq之后,test1的大小已经为4。但是在test2.content.seq之后,组test1再次被清除。
这是怎么回事?有什么意见吗?
答案 0 :(得分:1)
如果将控件分配给container.content,则表明此容器也是此控件的父级。而且任何时候都只有一位家长。所以,这是正确的行为。您将seq分配给test1.content,然后在添加到test2.content之前删除所有元素。