我想出瞭如何使用HBox
而不是ToolBar
來保存控件;關鍵是HBox.setHgrow()
方法,該方法允許您設置間隔物對象以增大可用空間。我仍然不知道是否可以使用實際的ToolBar實例來完成此操作。
/**
* Creates and populates the Node that serves as the window toolbar.
*
* @return a newly constructed and populated toolbar component
*/
private Node makeToolbar() {
// Auto-sizing spacer
Region spacer = new Region();
HBox.setHgrow(spacer, Priority.ALWAYS);
// Horizontal box containing toolbar controls
HBox box = new HBox();
box.setPadding(new Insets(8));
box.setAlignment(Pos.CENTER);
box.getChildren().addAll(openButton, spacer, resizeSlider);
// Colored background panel with drop shadow
Pane bgRect = new Pane();
bgRect.setStyle("-fx-background-color: #e0e0e0;");
bgRect.setEffect(DropShadowBuilder.create().width(1).build());
// StackPane to hold box and rectangle
StackPane stack = new StackPane();
stack.getChildren().addAll(bgRect, box);
return stack;
}
詹姆斯·韋弗的文章[最佳實踐的JavaFX 2.0企業應用程序(http://www.oracle.com /technetwork/articles/java/javafxbest2-1634274.html)演示了在ToolBar中放置一個調整大小的間隔區(稱爲文章中的彈簧)。用於彈簧的靜態HGrow設置與您的答案相同(因爲內部水平ToolBar只是一個HBox)。 – jewelsea
謝謝,jewelsea;這是一個更簡單的解決方案! –