JavaFX: добавьте детей в ScrollPane

У меня есть объект панели, где пользователи могут перетаскивать различные изображения. Для этого я использовал метод pane.getChildren(imageViewObject)

Теперь, после замены Pane на ScrollPane, у него нет этого метода. Поэтому я не знаю, как решить эту проблему.

заранее спасибо


person Alex    schedule 23.07.2016    source источник


Ответы (1)


вы можете указать только один узел с ScrollPane. Чтобы создать представление прокрутки с более чем одним компонентом, используйте контейнеры макета или класс Group.

Pane pane = ...;
ScrollPane sp = new ScrollPane();
sp.setContent(pane);

Пример:

import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 *
 * @author kachna
 */
public class Test extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        VBox root = new VBox();
        root.getChildren().addAll(new Button("button1"), new Button("button2"), new Button("button3"));
        root.setSpacing(10);
        root.setPadding(new Insets(10));
        ScrollPane sp = new ScrollPane();
        sp.setContent(root);
        sp.setPannable(true); // it means that the user should be able to pan the viewport by using the mouse.
        Scene scene = new Scene(sp, 100, 100);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
person Kachna    schedule 23.07.2016
comment
Это не совсем то решение, которое я искал. Проблема в том, что теперь ScrollPane можно прокручивать только с боковых панелей. - person Alex; 24.07.2016
comment
позвони scrollPane.setPannable(true); - person Kachna; 24.07.2016