javafx – 如何让TabPane填充其父级?
发布时间:2020-12-15 04:21:40 所属栏目:Java 来源:网络整理
导读:我的TabPane似乎只是水平填充它的宽度,而不是垂直填充.我现在的解决方法是这样做: stage.getScene().heightProperty().addListener(new ChangeListenerNumber() { @Override public void changed(ObservableValue? extends Number observable,Number oldVal
我的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). (或者它是否适当地调整它的大小?)它也有点感觉不对,我必须设置简单的布尔值,因为它的行为完全符合水平变化的预期. 场景设置如下: 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,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);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |