1

アプリケーションで奇妙なグラフィックの不具合が発生しています。状況は、いくつかの GridPanes を作成し、それらを ScrollPane 内にある親 GridPane に追加することです。ただし、スクロールすると、いくつかの奇妙な不具合が発生し始めます。ここに写真があります:(リンクを使用しなければならないことをお詫びします。画像を投稿するのに十分な評判がありません)。

http://s11.postimg.org/x9eg8bz4z/Glitch.png

これがどのように見えるかの図です:

http://s11.postimg.org/cqjk39l7n/Normal.png

これが私のコードです:

private static class Controller implements Initializable {

    @FXML private GridPane projectsPane;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
    //I first create some objects to be used when
    //creating the GridPanes in the following loop,
    //but I have removed the code for simplicity
    for(AvailableProject availableProject : availableProjects) {
            GridPane projectPane = new GridPane();
            projectPane.setBackground(new Background(new BackgroundFill(Color.DARKGREY, CornerRadii.EMPTY, Insets.EMPTY)));
            ColumnConstraints column1 = new ColumnConstraints();
            column1.setPercentWidth(50);
            ColumnConstraints column2 = new ColumnConstraints();
            column2.setPercentWidth(50);
            projectPane.getColumnConstraints().addAll(column1, column2);
            projectPane.setPadding(new Insets(5));
            Label projectName = new Label(availableProject.projectName);
            GridPane.setValignment(projectName, VPos.CENTER);
            projectPane.add(projectName, 0, 0);
            TextFlow description = new TextFlow(new Text(availableProject.description));
            description.setMaxSize(200, 100);
            GridPane.setValignment(description, VPos.CENTER);
            projectPane.add(description, 0, 1);
            Label category = new Label(availableProject.category);
            GridPane.setValignment(category, VPos.CENTER);
            GridPane.setHalignment(category, HPos.RIGHT);
            projectPane.add(category, 1, 0, 1, 2);
            projectsPane.add(projectPane, 0, yRow);
            yRow++;
            Pane pane = new Pane();
            pane.setMinHeight(15);
            projectsPane.addRow(yRow, pane);
            yRow++;
        }
    }
}

コードを簡潔にするためにコードを単純化しようとしましたが、必要に応じて残りを投稿します。

ありがとうございました!

4

1 に答える 1

1

私は解決策を見つけたようです。見た目からして、これは本当にバグです。後でオラクルに報告します。ScrollPane にパディングがあったことが問題だったようです。私のテストでは、パディングが 5 より大きい場合、グリッチが発生します。回避策は、パディングを ScrollPane ではなく親 GridPane に割り当てることです。

于 2015-08-04T18:40:23.010 に答える