让Window在JavaFX中向下滚动

时间:2017-05-22 05:52:08

标签: java javafx netbeans

所以我现在正在努力学习Java,因为我知道JavaScript和PHP。我正在使用JavaFX在Netbeans中工作,我正在尝试创建一个创建5个按钮的程序。 (这是在创建新的JavaFX应用程序时修改Netbeans附带的代码。)如果我将场景的y参数更改为小于所有按钮的y,它将不会显示剩余的按钮,它将不能向下滚动。这就是我到目前为止所拥有的。如何启用它向下滚动以便可以看到所有按钮?我知道我可以将场景改回原来的高度,但我想学习使用JavaFX滚动。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javax.swing.JScrollPane;

public class JavaFXApplication1 extends Application {

    @Override
    public void start(Stage primaryStage) {
        GridPane root = new GridPane();
        Button[] btn=new Button[5];
        for(int i=0;i<5;i++){
            btn[i] = new Button();
            btn[i].setText(i+"");
            GridPane.setRowIndex(btn[i],i); 
            root.getChildren().addAll(btn[i]);
            btn[i].setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("This is a button");
            }
        });

        }

        Scene scene = new Scene(root, 300, 50);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }


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

}

1 个答案:

答案 0 :(得分:3)

使用ScrollPane将root设置为:

ScrollPane sp = new ScrollPane();
sp.setContent(root);

Scene scene = new Scene(sp, 300, 50);