kea*_*nni 2 javafx fxml gridpane
我有一个带有很多控件的GUI(标签,文本字段,组合框和复选框).我在Gridpane中组织它们并希望将它们放在行和列中(就像它用于gridpane布局一样).
如果我使用FXML,我会这样写:
<GridPane>
<Label GridPane.rowIndex="0" GridPane.columnIndex="0" text="field1"/>
<TextField GridPane.rowIndex="0" GridPane.columnIndex="1"/>
<Label GridPane.rowIndex="1" GridPane.columnIndex="0" text="field2"/>
<TextField GridPane.rowIndex="1" GridPane.columnIndex="1"/>
</GridPane>
Run Code Online (Sandbox Code Playgroud)
现在问题:如果我想在第0行和第1行之间添加一行,我需要增加下一行的行索引.现在让我们取20行和5列,我想在第一行之后添加一行.这对我来说可以为第一个下面的每一行增加rownumber.
有没有类似行元素的东西,它的子控件在同一行中随着列数的增加而定位?我想到这样的事情:
<GridPane>
<GridPane.Row>
<Label text="field1"/>
<TextField/>
</GridPane.Row>
<GridPane.Row>
<Label text="field2"/>
<TextField/>
</GridPane.Row>
</GridPane>
Run Code Online (Sandbox Code Playgroud)
我知道VBox和HBox,这几乎是我想要的,但我希望在固定宽度的列中有元素.
小智 6
您可以使用对象进行跟踪rowIndex.
Java的:
public class RowCounter {
private int currentRowIndex = 0;
/**
* Return current rowIndex.
* @return
*/
public int getCr() {
return currentRowIndex;
}
/**
* Return current rowIndex and increase it.
* @return
*/
public int getNr() {
return currentRowIndex++;
}
}
Run Code Online (Sandbox Code Playgroud)
FXML:
<GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<fx:define>
<RowCounter fx:id="rc" />
</fx:define>
<children>
<Label text="Name:" GridPane.columnIndex="0" GridPane.rowIndex="$rc.cr" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="$rc.nr" />
<Label text="Age:" GridPane.columnIndex="0" GridPane.rowIndex="$rc.cr" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="$rc.nr" />
<Label text="Address:" GridPane.columnIndex="0" GridPane.rowIndex="$rc.cr" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="$rc.nr" />
</children>
</GridPane>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2018 次 |
| 最近记录: |