使用 JavaFX Scene 创建垂直 ButtonBar 的简单方法 Builder/Gluon
Simple way to create a vertical ButtonBar using JavaFX Scene Builder/Gluon
如何在 JavaFX 8 中制作垂直 ButtonBar?
我想要与 ButtonBar 组件完全相同的概念,但 ButtonBar 是水平的,我想要垂直的。所有按钮的大小必须相同。
如果我使用 VBox,我必须手动设置按钮和 VBox 的宽度。
是否有更简单的方法来做到这一点而无需设置宽度?
您需要做两件事:在 VBox
上将 fillWidth
设置为 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 可见,请参阅 。
据我所知,ButtonBar 无法更改此设置,因此 SceneBuilder 对此无能为力。
您可能想要提交 ButtonBar 的功能请求:http://bugs.java.com/
如何在 JavaFX 8 中制作垂直 ButtonBar?
我想要与 ButtonBar 组件完全相同的概念,但 ButtonBar 是水平的,我想要垂直的。所有按钮的大小必须相同。
如果我使用 VBox,我必须手动设置按钮和 VBox 的宽度。
是否有更简单的方法来做到这一点而无需设置宽度?
您需要做两件事:在 VBox
上将 fillWidth
设置为 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 可见,请参阅
据我所知,ButtonBar 无法更改此设置,因此 SceneBuilder 对此无能为力。
您可能想要提交 ButtonBar 的功能请求:http://bugs.java.com/