2011-10-13 42 views
1

我希望能夠在節點上顯示具有特定標籤的節點 - 例如,一個圓形或矩形節點,例如中心的標籤。這看起來應該是微不足道的,我相信它只是網上相對稀少的文檔/教程意味着我似乎無法找到答案!在JavaFX 2.0的節點上居中放置一個標籤

此刻,我可以在節點上顯示標籤沒有問題(默認情況下它顯示爲使標籤的左上角從中心開始,而不是我想要的),或者將標籤設置爲顯示在右側(通過設置標籤「爲」一個特定的節點),但沒有把它放在中間!任何人都可以在這一點上點亮一些?

回答

5

我打賭你在尋找其他的佈局,但StackPane提供了這種類型的功能。

從教程:Working with Layouts

StackPane

的StackPane佈局窗格地方所有節點的單 堆棧與上一節點的頂部增加每個新節點內。此 版式模型提供了一種將文字疊加在形狀或圖像上的簡單方法,或與常用形狀重疊以創建複雜形狀。圖1-6 顯示了一個幫助圖標,該圖標通過在具有漸變背景的矩形的頂部 上堆疊問號創建。

enter image description here

從教程

例1-4創建堆棧窗格

StackPane stack = new StackPane(); 
Rectangle helpIcon = new Rectangle(35.0, 25.0); 
helpIcon.setFill(new LinearGradient(0,0,0,1, true, CycleMethod.NO_CYCLE, 
new Stop[]{ 
new Stop(0,Color.web("#4977A3")), 
new Stop(0.5, Color.web("#B0C6DA")), 
new Stop(1,Color.web("#9CB6CF")),})); 
helpIcon.setStroke(Color.web("#D0E6FA")); 
helpIcon.setArcHeight(3.5); 
helpIcon.setArcWidth(3.5); 

Text helpText = new Text("? "); 
helpText.setFont(Font.font("Amble Cn", FontWeight.BOLD, 18)); 
helpText.setFill(Color.WHITE); 
helpText.setStroke(Color.web("#7080A0")); 

stack.getChildren().addAll(helpIcon, helpText); 
stack.setAlignment(Pos.CENTER_RIGHT);  // Right-justify nodes in stack 

HBox.setHgrow(stack, Priority.ALWAYS); // Give stack any extra space 
hbox.getChildren().add(stack);   // Add to HBox from Example 1-2 
+0

其實代碼,這正是我一直在尋找 - 我只是沒有在看正確的地方!感謝那。 – berry120

相關問題