TableView:一个包含多列的标题

时间:2016-01-07 20:31:35

标签: java javafx-8

我正在尝试创建一个表,其中包含一个带有一个标题的列但在JavaFX 8中每行有几个条目。结果应该看起来或多或少像这样:

enter image description here

我尝试添加完美的子列,但我无法隐藏子列的标题。我发现只为旧版本的javafx和ListView隐藏标题的解决方案。

此外,我尝试为一行添加一个完整的ListView,类似于jewelsea在此提出的建议:JavaFX table- how to add components?

当然我使用了ListView而不是Button。但是,TableView只显示了ListView的第一个条目。 这是我的Callback类的代码:

public class IeListViewCallback implements
        Callback<TableColumn<ConnectedIEList, ConnectedIEList>, TableCell<ConnectedIEList, ConnectedIEList>> {
    @Override
    public TableCell<ConnectedIEList, ConnectedIEList> call(TableColumn<ConnectedIEList, ConnectedIEList> param) {
        return new TableCell<ConnectedIEList, ConnectedIEList>() {
            final ListView<String> listView = new ListView<String>();
            {
                listView.getItems().add("entry 1");
                listView.getItems().add("entry 2");
                listView.getItems().add("entry 3");
            }

            @Override
            public void updateItem(final ConnectedIEList connectedIEList, boolean empty) {
                super.updateItem(connectedIEList, empty);
                setGraphic(listView);
            }
        };
    }
}

当然这段代码仅用于测试。通常,条目将取决于提交的列表而不是硬编码!

1 个答案:

答案 0 :(得分:2)

您可以通过css:

明确地将子列的高度设置为零来实现此目的
column.setStyle("-fx-pref-height: 0;")

您必须对列的所有子列执行此操作才能查看效果。