JavaFX:向ScrollPane添加子节点

9

我有一个Pane对象,用户可以将各种ImageView拖放到其中。为此,我使用了pane.getChildren(imageViewObject)方法。

现在,我用ScrollPane替换了Pane,但它没有这个方法。因此,我不知道如何解决这个问题。

提前感谢您的帮助。

1个回答

15

您只能使用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);
    }

}

这不是我正在寻找的完美解决方案。问题在于现在,ScrollPane只能从侧边栏滚动。 - Alex
1
调用 scrollPane.setPannable(true); - Kachna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接