我正在尝试创建一个表,其中包含一个带有一个标题的列但在JavaFX 8中每行有几个条目。结果应该看起来或多或少像这样:
我尝试添加完美的子列,但我无法隐藏子列的标题。我发现只为旧版本的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);
}
};
}
}
当然这段代码仅用于测试。通常,条目将取决于提交的列表而不是硬编码!
答案 0 :(得分:2)
您可以通过css:
明确地将子列的高度设置为零来实现此目的column.setStyle("-fx-pref-height: 0;")
您必须对列的所有子列执行此操作才能查看效果。