如何在JavaFx中添加ScrollBar
发布时间:2020-12-15 04:44:59 所属栏目:Java 来源:网络整理
导读:我正在尝试将一个ScrollBar添加到HBox中. ScrollBar被添加,但我没有滚动.我怎样才能使它工作? public class ScrollableItems { public void scrollableItems(HBox content) { double height = 180; ScrollBar sc = new ScrollBar(); content.getChildren().
我正在尝试将一个ScrollBar添加到HBox中. ScrollBar被添加,但我没有滚动.我怎样才能使它工作?
public class ScrollableItems { public void scrollableItems(HBox content) { double height = 180; ScrollBar sc = new ScrollBar(); content.getChildren().add(sc); sc.setLayoutX(content.getWidth() - sc.getWidth()); sc.setMin(0); sc.setOrientation(Orientation.VERTICAL); sc.setPrefHeight(height); sc.setMax(height * 2); sc.valueProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue<? extends Number> ov,Number old_val,Number new_val) { content.setLayoutY(-new_val.doubleValue()); } }); } } 将子项添加到HBox然后将其传递给上面的scrollableItems(HBox内容)以添加SCrollBar public HBox mainItemsWrapper() { HBox scrollabelWrapper = new HBox(); scrollabelWrapper.setMaxHeight(180); HBox entityDetailViewWrapper = new HBox(); entityDetailViewWrapper.getChildren().addAll(.....); scrollabelWrapper.getChildren().add(entityDetailViewWrapper); new ScrollableItems().scrollableItems(scrollabelWrapper); return scrollabelWrapper; } 谢谢你们….. 解决方法
我真的不明白为什么你要重新发明轮子..你应该使用
ScrollPane 而不是.
这个小例子展示了如何使用ScrollPane类创建一个可水平滚动的HBox: @Override public void start(Stage primaryStage) { HBox hbox = new HBox(); Button b = new Button("add"); b.setOnAction(ev -> hbox.getChildren().add(new Label("Test"))); ScrollPane scrollPane = new ScrollPane(hbox); scrollPane.setFitToHeight(true); BorderPane root = new BorderPane(scrollPane); root.setPadding(new Insets(15)); root.setTop(b); Scene scene = new Scene(root,400,400); primaryStage.setScene(scene); primaryStage.show(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |