2010-07-02 91 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之前刪除所有元素。