2016-04-19 13 views
0

目的は、ウィンドウのサイズを変更するときに、GridPane内の特定の領域(左上隅の領域のみ)のサイズを変更することです。関連する領域は常にウィンドウのサイズに合わせる必要があります。サイズ変更のメカニズムはうまくいきますが、GridPaneは重要な領域を大幅に縮小しています。GridPaneが多くの領域に塗りつぶす - 部分領域のみ関連

GridPaneで未使用のセルを切り取る方法はありますか?

もっと良い解決策がありますか?以下の問題の

コードとスクリーンショット:

for (int row = 0; row <= characters.length - 1; row++) { 
      for (int column = 0; column <= characters[0].length - 1; column++) { 
       ClockElement n = new ClockElement(characters[row][column], false); 
       grid.add(n.getLabel(), column, row); 
      GridPane.setHalignment(n.getLabel(), HPos.CENTER); 

       ColumnConstraints c = new ColumnConstraints(); 
       c.setHgrow(Priority.ALWAYS); 
       //c.setMinWidth(40); 
       c.setPercentWidth(50); //old 40 
       grid.getColumnConstraints().add(c); 
       RowConstraints r = new RowConstraints(); 
       r.setVgrow(Priority.ALWAYS); 
       //r.setMinHeight(40); 
       r.setPercentHeight(50); 
       grid.getRowConstraints().add(r); 
       arrClockElement[row][column] = n; 
      } 
     } 
     grid.setPadding(new Insets(0, 0, 0, 0)); 
     grid.setPrefSize(580, 680); // Default width and height 
     grid.setMaxSize(Region.USE_COMPUTED_SIZE, Region.USE_COMPUTED_SIZE); 
     grid.setGridLinesVisible(true); 

Important area is at the left top

答えて

1

あなたがColumnConstraint sおよびRowConstraint秒あまりにも多くを追加しています。 characters.length(行数)RowConstraintsおよびcharacters[0].length(列数)ColumnConstraintsが必要です。代わりに、内側のループに両方を追加するので、それぞれを(characters.length)*(characters[0].length)追加します。

内側のループの外 RowConstraints作成を移動し、 ColumnConstraintsを追加するための新しいループを作成し

for (int row = 0; row <= characters.length - 1; row++) { 

    RowConstraints r = new RowConstraints(); 
    r.setVgrow(Priority.ALWAYS); 
    //r.setMinHeight(40); 
    r.setPercentHeight(50); 
    grid.getRowConstraints().add(r); 

    for (int column = 0; column <= characters[0].length - 1; column++) { 
     ClockElement n = new ClockElement(characters[row][column], false); 
     grid.add(n.getLabel(), column, row); 
     GridPane.setHalignment(n.getLabel(), HPos.CENTER); 

     arrClockElement[row][column] = n; 
    } 
} 

for (int column = 0 ; column < characters[0].length; column++) { 
    ColumnConstraints c = new ColumnConstraints(); 
    c.setHgrow(Priority.ALWAYS); 
    //c.setMinWidth(40); 
    c.setPercentWidth(50); //old 40 
    grid.getColumnConstraints().add(c); 
} 
関連する問題