2013-01-17 71 views

回答

-1

原來我是什麼試圖做需要AnchorPane和GridPane。

6

您可以使用列和行約束來控制GridPane中不同行和列的增長情況。

要做到這一點的方法是將第一列的hgrow屬性設置爲ALWAYS,並將第一行的vgrow屬性設置爲始終 - 這意味着左上角的單元格將始終展開。您可以將其他單元格設置爲固定的寬度/高度,否則它們將展開以適應其內容並且不再更多。

我已經在AnchorPane中包含了一個帶有GridPane的FXML示例,並且錨定在AnchorPane的頂部,左下角和右側。這意味着GridPane將增長到填滿父AnchorPane:

<?xml version="1.0" encoding="UTF-8"?> 

<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 

<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml"> 
    <children> 
    <GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> 
     <columnConstraints> 
     <ColumnConstraints hgrow="ALWAYS" /> 
     <ColumnConstraints prefWidth="150" /> 
     </columnConstraints> 
     <rowConstraints> 
     <RowConstraints vgrow="ALWAYS" /> 
     <RowConstraints prefHeight="150" /> 
     </rowConstraints> 
    </GridPane> 
    </children> 
</AnchorPane> 

這將導致這裏顯示的佈局,並展開以填充父窗格:

Resulting Layout

+0

我想出瞭如何在不使用XML的情況下做到這一點。謝謝回答我的問題。 – user1958884

+0

我用你推薦的方法。 – user1958884

+0

有沒有辦法通過java代碼設置HGrow? –