2014-10-18 26 views
0

我在尋找類似於VBox(將元素設置爲彼此之上的內容)時遇到了一些問題,但這不會自動適應。我試圖創建甘特圖,但如果我創建小寬度的矩形,並將文本添加到VBox以及數字寬度大於我的矩形寬度它將選擇數字寬度。當我開始使用HBox()來放置相鄰的東西時,它就成了一個問題。JavaFX - 與VBox類似的東西,但不會自動適應

,我可以告訴你它的畫面:

由於從圖像所見,有藍色和黑色矩形之間的空白,這些都是由數字比長方形的寬度更高的寬度所致。我想忽略數字寬度,並得到矩形緊挨着(儘管保持數字在中間矩形的中心)。 HBox已創建值爲0,所以沒有差距。

我的代碼是在愛沙尼亞完全寫,我會提供一個例子代碼,是不是從實際的程序,但功能,我已經做了這個想法:

 HBox hbox1 = new HBox(); 
     VBox vbox1 = new VBox(); 
     Rectangle r1 = new Rectangle(0,0,30,30); 
     Rectangle r2 = new Rectangle(0,0,5,50); 
     r2.setFill(Color.BLUE); 
     Rectangle r3 = new Rectangle(0,0,30,30); 
     Text t1 = new Text(); 
     t1.setText(Integer.toString(222)); 
     vbox1.getChildren().addAll(r2,t1); 
     hbox1.getChildren().addAll(r1,vbox1,r3); 
     root.setBottom(hbox1); 

在此先感謝。

回答

1

一個這樣做可能的方式如下:

設置文本節點unmanagable其父,並確定其位置手動

Text t1 = new Text(); 
t1.setText(Integer.toString(222)); 
t1.setManaged(false); 
t1.setLayoutX(-t1.getLayoutBounds().getWidth()/2); 
t1.setLayoutY(r2.getHeight() + t1.getLayoutBounds().getHeight()); 
+0

謝謝你,這所做的工作:) – charen 2014-10-19 18:39:10