2014-11-03 64 views
-1

我正在使用JAVAFX開發應用程序。主要是,該應用程序正在使用一個TabPane控制器。在第一個標籤中,我加載了一個StackPane的控制器。在我作爲默認加載的StackPane中,有自定義單元格的一個列表視圖。在每個細胞中,我有一些按鈕。我想在堆棧窗格中添加一個新窗格,並在單擊按鈕時將其放在前面。 我嘗試了toFront()toBack()但我無法獲得任何工作。 我檢查過,並且這兩個窗格都已加載,其內容是正確的。 我無法附加照片,因爲我沒有足夠的代表。帶有StackPane和自定義控件的Javafx TabPane

任何建議表示讚賞。

+0

你有足夠的代表處,現在發佈你的照片,或者你可以上傳和分享鏈接,而到達那裏。另外考慮添加[mcve](http://stackoverflow.com/help/mcve)。我懷疑[James_D答案](http://stackoverflow.com/a/26715116/7766309)很重要,但很難從缺乏提供的材料中推斷出來。 – Lulero 2017-04-08 20:08:57

回答

2

很難知道到底發生了什麼錯誤的,因爲你沒有張貼任何代碼,但是從StackPane Javadocs

孩子的z順序由孩子的 列表的順序確定第0個孩子是最後一個孩子。如果已經設置了 邊框和/或填充,孩子們將在這些插頁內放置 。

所以要移動Node到前面,你應該把它移到列表的末尾:

StackPane stackPane = ... ; 
Node node = ... ; 

// move node to front: 

// remove node from current location in child list" 
stackPane.getChildren().remove(node); 
// add node back in at end of child list: 
stackPane.getChildren().add(node);