2014-10-15 16 views
7

Tôi đang gặp khó khăn trong việc định vị văn bản trong HBox. Tôi có thể thiết lập Horizontal Alignment của Text, nhưng tôi không thể thiết lập Vertical Alignment của Text. Tôi đang cố gắng đặt Văn bản trong Trung tâm dọc của Hbox, tuy nhiên nó xuất hiện ở trên cùng.JavaFX 8 - Văn bản định vị Trung tâm dọc của HBox

Mọi trợ giúp sẽ được đánh giá cao.

// Create The Updates Progress Bar At The Bottom Of The Window 
HBox checkUpdatesBar = new HBox(); 
checkUpdatesBar.setId("checkUpdatesBar"); 
checkUpdatesBar.setPrefSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT); 
checkUpdatesBar.setMinSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT); 
checkUpdatesBar.setMaxSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT); 

// Create The 'Check For Updates...' Text 
Text checkForUpdates = new Text(); 
checkForUpdates.setFont(Font.font("Arial Black", FontWeight.BLACK, 15)); 
checkForUpdates.setWrappingWidth(CHECK_PANE_WIDTH/2.8); 
checkForUpdates.setFill(Color.WHITE); 
checkForUpdates.setTextAlignment(TextAlignment.CENTER); 
checkForUpdates.setText("Checking For Updates ...".toUpperCase()); 

checkUpdatesBar.getChildren().add(checkForUpdates); 

Mã của tôi sản xuất như sau: http://puu.sh/ccEkp/41a26038a4.png

Tôi thích Ngang vị của tôi. Tôi biết nó không phải ở giữa bởi vì tôi đặt nó theo cách đó. Tuy nhiên, tôi chỉ quan tâm đến việc định vị dọc theo chiều dọc.

Tôi đã thử những điều sau riêng biệt:

checkForUpdates.setLayoutY(20); 
checkForUpdates.setY(20); 

Tôi chọn số 20 vì tôi muốn để di chuyển văn bản 20 pixel xuống từ phía trên cùng của HBox. Tôi đã tính toán giá trị này trong Photoshop. Mặc dù nếu có cách nào tốt hơn để đặt Văn bản thành Trung tâm dọc của HBox, hãy làm sáng tỏ tôi.

Cảm ơn bạn lần nữa vì đã giúp đỡ!

Trả lời

23

Nếu bạn chỉ muốn định vị văn bản ở giữa của HBox, bạn có thể sử dụng alignment property của HBox để làm điều đó.

Đặt liên kết như CENTER_LEFT, để đặt những đứa trẻ, bắt đầu cho TRUNG TÂM của không gian dọc của HBox

checkUpdatesBar.setAlignment(Pos.CENTER_LEFT); 
4

Nếu bạn đang sử dụng SceneBuilder, chọn HBox của bạn và trong phần thanh tra, thay đổi

Thuộc tính: Node: Alignment giá trị

để CENTER_LEFT:

enter image description here

Các vấn đề liên quan