如何在JavaFX 8中创建垂直ButtonBar?
我想要与ButtonBar组件完全相同的概念,但ButtonBar是水平的,我想要垂直。所有按钮的大小必须相同。
如果我使用VBox,我必须手动设置按钮和VBox的宽度。
有没有更简单的方法来设置宽度?
答案 0 :(得分:2)
您需要做两件事:在fillWidth
上将VBox
设置为true,并在每个按钮上设置maxWidth
。最方便的方法可能是VBox
的简单子类:
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
public class VerticalButtonBar extends VBox {
public VerticalButtonBar() {
setFillWidth(true);
}
public void addButton(Button button) {
button.setMaxWidth(Double.MAX_VALUE);
getChildren().add(button);
}
}
然后你可以做像
这样的事情import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class VerticalButtonBarExample extends Application {
@Override
public void start(Stage primaryStage) {
VerticalButtonBar bar = new VerticalButtonBar();
bar.addButton(new Button("A"));
bar.addButton(new Button("Button"));
BorderPane root = new BorderPane();
root.setLeft(bar);
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
看起来像
如果您想让VerticalButtonBar
对SceneBuilder可见,请参阅Adding a custom component to SceneBuilder 2.0。
答案 1 :(得分:1)
据我所知,ButtonBar无法改变这一点,所以SceneBuilder无法做到这一点。
您可能想要为ButtonBar提交功能请求:http://bugs.java.com/