2016-09-21 80 views
0

添加節點(PROGRAMM)如果我追加像這樣的節點:的JavaFX之前或之後的另一個節點(XML)

HBox child = new HBox(); 
HBox fooBar = (HBox) doc.lookup("#fooBar"); 

fooBar.getChildren().add(child); 

它可能工作,但不是我想要它,因爲我想要定義的位置的方式。如果我在fooBar之前或之後想要孩子怎麼辦?

<HBox> 
    <HBox id="first"></HBox> 
    <HBox id="fooBar"></HBox> 
    <HBox id="last"></HBox> 
</HBox> 

回答

2

fooBar.getParent().getChildren()返回ObservableList它,因爲它是從java.util.List繼承有一個方法add(int index, E element)(在spec更多信息)

在正確的位置可以做的伎倆將您的新節點。 以下代碼在fooBar之前添加子項。

int fooBarIndex = fooBar.getParent().getChildren().indexOf(fooBar); 
fooBar.getParent().getChildren().add(fooBarIndex, child) 
+1

當然,'fooBar.getChildren()的indexOf(FOOBAR)'必定返回'-1',因爲你不允許添加一個節點作爲自身的一個孩子 - 但更多的是這個問題的問題比答案的問題。 –

+0

你說得對。當然它必須是父母 – Abaddon666

+0

謝謝!太棒了。 – Asperger

相關問題