JavaFX:将子项添加到ScrollPane

时间:2016-07-23 22:11:21

标签: java javafx scrollpane

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

现在,在用ScrollPane替换Pane之后,它没有这个方法。所以我不知道如何解决这个问题。

提前谢谢

1 个答案:

答案 0 :(得分:10)

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

}