2010-07-02 76 views
0

将项目添加到JavaFX的序列时,我在这里遇到了一个奇怪的问题时,代码如下,奇怪的问题将项目添加到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}"); 
} 

这似乎很简单:按照顺序,“序列”包含4节点。现在我希望将seq的项目分别传递给test1和test2两个组。然而输出结果真的很奇怪,

sizeof test1: 0 
sizeof test2: 4 

在赋值test1.content = seq之后,test1的大小已经是4了。但是,在test2.content.seq之后,组test1已被再次清除。

这是怎么发生的?任何意见?

回答

1

如果将控件分配给container.content,您正在使此容器也是此控件的父项。随时只有一位家长。所以,这是正确的行为。您将seq分配给test1.content,然后在添加到test2.content之前删除所有元素。