我的FXML文件中定义了TableView
,当然,ObservableList
与其相关联。当ObservableList
获取新条目时,TableView
上会显示一个新行。
问题是:我不希望TableView
上有任何滚动条,但是当我在表格中输入很多条目时它会出现。我不能使用 fixedCellSize ,因为每一行都有不同的高度。
当我得到一个新条目时,我想计算每一行的高度,考虑到我的java代码中没有定义TableColumn
,我怎么可能? (所有这些都在FXML文件中定义。)
<TableView fx:id="table" mouseTransparent="true" prefHeight="230.0" prefWidth="200.0">
<columns>
<TableColumn editable="false" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="COLUMN 1">
<cellValueFactory><PropertyValueFactory property="property1" /></cellValueFactory>
</TableColumn>
<TableColumn editable="false" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="COLUMN 2">
<cellValueFactory><PropertyValueFactory property="property2" /></cellValueFactory>
</TableColumn>
<TableColumn editable="false" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="COLUMN 3">
<cellValueFactory><PropertyValueFactory property="property3" /></cellValueFactory>
</TableColumn>
<TableColumn editable="false" prefWidth="345.0" text="COLUMN 4">
<cellValueFactory><PropertyValueFactory property="property4" /></cellValueFactory>
</TableColumn>
</columns>
<columnResizePolicy><TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /></columnResizePolicy>
</TableView>
@FXML private TableView<MyObject> table;
private ObservableList<MyObject> data;
public MyController() {
super("/myFXML.fxml");
data = FXCollections.observableArrayList();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
data = table.getItems();
MyModel model = new MyModel(data);
}
当然,这个类扩展了用于每个组件的控制器。在MyModel
课程中,我获得ObservableList
中的条目(我在TableView
没有任何参考)。一切正常,我只想了解是否可以动态计算行的高度。