2013-08-26 63 views
0

我正在基於JavaFx節點創建交互式gant圖。 圖片顯示我的概念。如何使用JavaFx向StackPane添加垂直線

1. Operations are placed inside of VBox 
2. VBox is placed inside of StackPane and then inside of ScrollPane. 
3. I have vertical time lines responsible for hours. 

這是即時通訊使用用於添加垂直時間線的方法:

//sp is my StackPane 
//line every 60 px/minutes 

for (int i = 0; i < lines.length; i++) { 
    lines[i] = new Line(i * 60, 0, i * 60, sp.getWidth()); 
    sp.getChildren().add(lines[i]); 
} 

問題是,所有的線都在甘特圖的中間添加一個接一個。基本上我認爲問題在於Java沒有正確地設置X(開始,結束),Y(開始,結束)值....

有什麼建議嗎?

Gant chart nodes schema

回答

4

爲什麼StackPane不起作用

StackPane是佈局面板,它定位是根據對內容的限制,如alignment constraint的內容。 StackPane的默認對齊方式是將所有內容放在堆棧中。佈局窗格通常會忽略您提供給佈局內容的任何手動設置(因爲它們自己管理佈局)。

解決方案:使用組或窗格

你想要做的是使用比StackPane不自動佈局的內容位置以外的容器。您可以使用的容器示例爲GroupPane

你可以用你的新父母在StackPane

您可以隨時換你父容器在StackPane如果你想在它爲中心的可用佈局區域(通常是一個StackPane使用方式)。

+0

非常感謝!這工作得很好 – kingkong