gpt4 book ai didi

javafx - 如何让 TabPane 填充其父级?

转载 作者:行者123 更新时间:2023-12-01 09:56:42 26 4
gpt4 key购买 nike

我的 TabPane 似乎只水平填充它的宽度,而不是垂直填充。我现在的解决方法是这样做:

    stage.getScene().heightProperty().addListener(new ChangeListener<Number>() {

@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println("height changed");
tabPane.setPrefHeight(newValue.doubleValue());
}
});

但如果我使用该高度,它显然比实际保留的区域大(TabPane 上方有一个 MenuBar)。 (或者它是否适本地调整了它的大小?)这也有点不对劲,我可以设置一个简单的 bool 值,因为它的行为与水平变化的预期完全一样。

场景设置如下:

public static ResourceBundle BUNDLE = ResourceBundle.getBundle("locales/Bundle", new Locale("en", "GB"));
Scene scene = new Scene(new VBox(0), 800, 600);
MenuBar menuBar = new MenuBar();
Menu menuStart = new Menu(BUNDLE.getString("menu.start"));
Menu menuView = new Menu(BUNDLE.getString("menu.view"));
Menu menuHelp = new Menu(BUNDLE.getString("menu.help"));
menuBar.getMenus().addAll(menuStart, menuView, menuHelp);

((VBox) stage.getScene().getRoot()).getChildren().add(menuBar);
TabPane tabPane = new TabPane();
((VBox) stage.getScene().getRoot()).getChildren().add(tabPane);
stage.setScene(scene);
stage.show();

当然还有一些代码,但它只包含与拖放相关的监听器,并且这个问题发生在他们中的任何人做任何事情之前(他们每次做某事时都会打印到控制台)。

标签设置:

final Tab tab = new Tab();
final Label label = new Label("Tab" +text);
tab.setGraphic(label);
StackPane pane = new StackPane();
int red = rng.nextInt(256);
int green = rng.nextInt(256);
int blue = rng.nextInt(256);
String style = String.format("-fx-background-color: rgb(%d, %d, %d);", red, green, blue);
pane.setStyle(style);
Label label = new Label("This is tab " + text);
label.setStyle(String.format("-fx-text-fill: rgb(%d, %d, %d);", 256 - red, 256 - green, 256 - blue));
pane.setPrefSize(500, 500);
pane.getChildren().add(label);
tab.setContent(pane);

来自How to drag and drop tab nodes between tab panes

最佳答案

VBox.setVgrow(tabPane, Priority.ALWAYS);

关于javafx - 如何让 TabPane 填充其父级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com