2016-09-30 102 views
0

我有一個擴展CubicCurve的自定義組件。它是AnchorPane的第三個孩子;JavaFx刪除子節點失去功能,但仍然存在

Scene 
    AnchorPane 
     BorderPane 
      Circle 
       CubicCurve 

當我打電話anchorpane.getChildren().remove(cubic_curve)它失去了它的功能(在起點和終點都綁定到移動節點 - 這些不再被束縛),但我仍然可以看到它。

有沒有正確的方法來刪除形狀?我發現的一切都指向我去除孩子,但是這對我不起作用。

在此先感謝。

+1

這應該工作。如果沒有,你可能在某個地方有其他問題。創建一個[MCVE]並且[編輯]你的問題來包含它。 –

+1

想知道,CubicCurve是Circle的一個孩子嗎?形狀不能有孩子。我認爲這是邊界窗格的一個孩子,所以修復縮進。 – Mordechai

+0

等待,是getChildren()。remove()遞歸?即搜索整個子級別?我從來不知道... – Gikkman

回答

1

固定!

我是一個.setOnMouseDragReleased()處理程序中調用getChildren().remove(cubic_curve)。當我把它放在一個.setOnMouseReleased()處理程序中時,它可以很好地工作。

我試圖通過拖放兩個節點三次曲線連接。 onDragRelease處理程序將由被放置的節點調用 - 它所引用的曲線不正確。通過將其移動到onMouseReleased,處理程序引用第一個節點,然後引用正確的曲線。

希望有道理!

+0

非常感謝您使用解決方案進行報告。 :)我編輯你的答案並添加了一些格式。 – Lii

+0

謝謝:)這裏還是新的降價! – user3668541

+0

減價是美好的!很容易得到如此整潔的格式。 – Lii