如何在TableView [JavaFX]

时间:2016-06-15 07:51:27

标签: java javafx

我的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没有任何参考)。一切正常,我只想了解是否可以动态计算行的高度。

0 个答案:

没有答案