2013-07-31 14 views
5

Ho un'applicazione in cui ho una tabella e ProgressBar. Voglio espandere la barra di avanzamento quando l'utente ridimensiona la finestra. Per TextBox in JavaFX, è possibile impostare la priorità HBox e ottenerla come previsto. Ma per ProgressBar non funziona.Come far crescere la barra di avanzamento in orizzontale in javafx?

Qualcuno può dirmi dove sto sbagliando?

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

Mostraci il tuo codice e hai utilizzato qualche gestore di layout? – Vinay

+0

@JJPA Si prega di verificare il codice .. – Rajesh

+0

@JJPA Mi sono imbattuto nel blog mentre lo cercavo http://amyfowlersblog.wordpress.com/2010/05/26/javafx-1-3-growing-shrinking-and-filling/ – Rajesh

risposta

10

Bind le larghezze di barra di avanzamento e 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

Il modo migliore è quello di impostare la larghezza massima della barra di avanzamento.

browser.setMaxWidth(Double.MAX_VALUE);

e, naturalmente, a dire il VBox di riempire i suoi figli fino alla larghezza (che è de deault, quindi forse non degni di nota).

vbox.setFillWidth(true); 

La risposta fornita da Uluk potrebbe funzionare in semplici esempi. Tuttavia, potrebbe portare a una crescita incontrollata del genitore, se il genitore in risposta a un bambino che cambia la sua larghezza decide di cambiare anche la propria larghezza. Anche in layout non eccessivamente complessi tale comportamento può essere facilmente osservato.

Problemi correlati