繁体   English   中英

如何在javafx中水平增长进度条?

[英]How to grow progress bar horizontally in javafx?

我有一个应用程序,我有一个表和ProgressBar 我想在用户调整窗口大小时展开我的进度条。 对于JavaFX中的TextBox ,我可以设置HBox优先级并按预期实现。 但是对于ProgressBar它没有用。

谁能告诉我我做错了什么?

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);

绑定进度条和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);

最好的方法是设置进度条的最大宽度。

browser.setMaxWidth(Double.MAX_VALUE);

当然要告诉VBox将其孩子填满整个宽度(这是de deault,所以也许不值得一提)。

vbox.setFillWidth(true);

Uluk给出的答案可能在简单的例子中起作用。 然而,如果父母对孩子改变其宽度的反应也决定改变自己的宽度,那么它可能会导致父母的不受控制的增长。 即使在不过于复杂的布局中,也可以容易地观察到这种行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM