2013-07-31 47 views
5

我有一個應用程序,我有一個表和ProgressBar。當用戶調整窗口大小時,我想擴展我的進度條。對於JavaFX中的TextBox,我可以設置HBox優先級並按預期實現它。但對於ProgressBar它不起作用。如何在javafx中水平增長進度條?

任何人都可以告訴我我做錯了嗎?

HBox root = new HBox();   
final ProgressBar browser = new ProgressBar(); 

// final WebEngine webEngine = browser.getEngine(); 
// browser.setText("JJJ"); 
HBox.setHgrow(browser, Priority.ALWAYS);   
// webEngine.loadContent("<b>asdf</b>");    
root.getChildren().add(browser); 
scene.setRoot(root); 
+0

向我們展示您的代碼,並且您是否使用過任何佈局管理器? – Vinay

+0

@JJPA請檢查代碼.. – Rajesh

+0

@JJPA我在搜索時遇到了博客http://amyfowlersblog.wordpress.com/2010/05/26/javafx-1-3-growing-shrinking-and-filling/ – Rajesh

回答

10

綁定進度條和VBOX的寬度:

VBox root = new VBox(); 
root.setAlignment(Pos.TOP_CENTER); 
final ProgressBar browser = new ProgressBar(); 
browser.prefWidthProperty().bind(root.widthProperty().subtract(20)); // -20 is for 
    // padding from right and left, since we aligned it to TOP_CENTER. 
root.getChildren().add(browser); 
9

的最好方法是設置進度條的最大寬度。

browser.setMaxWidth(Double.MAX_VALUE);

當然並告訴垂直框中,最多填補其子女全寬(這是德deault,所以也許不值一提)。

vbox.setFillWidth(true); 

Uluk給出的答案可能適用於簡單的例子。然而,如果父母對孩子改變寬度的迴應也決定改變自己的寬度,則可能導致父母不受控制的增長。即使不是過於複雜的佈局,這種行爲也很容易被觀察到。