Как создать область прокрутки, которая будет прокручиваться в вертикальном направлении навсегда? - PullRequest
1 голос
/ 10 марта 2019

Я не уверен, возможно ли это, и я ничего не смог найти на нем, но могу ли я сделать прокрутку с полосой прокрутки навсегда? Я постоянно добавляю новые кнопки и метки в окно, когда кнопка нажата, и в конце концов она доходит до дна. Возможно, я неправильно его настраиваю, но вот код:

BorderPane bp = new BorderPane();
GridPane gp = new GridPane();
Button b = new Button("click");
gp.add(b, 1, 1);
ScrollPane sp = new ScrollPane(gp);
bp.setTop(sp);
b.setOnAction(e -> createLabel());

1 Ответ

0 голосов
/ 10 марта 2019

Вы почти там, все, что вам теперь нужно сделать, это добавить панель прокрутки как дочерний элемент для любого контейнера

        GridPane gp = new GridPane();
        Button b = new Button("click");
        gp.add(b, 1, 1);
        b.setOnAction(e -> createLabel());

        ScrollPane sp = new ScrollPane(gp);

        container.add(sp); // where container is whatever node that'll contain the gridpane.

Играть с этим кодом

public class Controller {
    @FXML private VBox topLevelContainer; // root fxml element

    @FXML
    void initialize(){

        GridPane gridPane = new GridPane();
        ScrollPane sp = new ScrollPane(gridPane);
        topLevelContainer.getChildren().add(sp);

        // add a 100 buttons to 0th column
        for (int i = 0; i < 100; i++) {
            gridPane.add(new Button("button"),0,i);
        }


    }

}
...