【问题标题】:Making a column in a TableView not visible until requested在请求之前使 TableView 中的列不可见
【发布时间】:2014-10-24 23:26:53
【问题描述】:
我使用 javaFX 的 scenebuilder 创建了一个 TableView。假设有 10 列。其中一些列可能与大多数用户无关,所以我想在启动时隐藏它们。用户可以根据需要显示其他列。我可以在 FXMLController 中放入什么代码来在启动时隐藏这些列?如果它们在启动时被隐藏,它们在 tableMenuButton 中是否仍然可见?
(我使用的是 JavaFX 8)
【问题讨论】:
标签:
java
javafx
javafx-8
scenebuilder
【解决方案1】:
在 fxml 中定义的所有列将自动添加到 menuButtons 列表中,就像它们在代码中定义一样。要显示表格的menuButton,设置它的属性
<TableView fx:id="tableView" tableMenuButtonVisible = "true">
要控制列的可见性状态,设置它的可见属性(与其他属性相比没什么特别的:)
<TableColumn text="Artist" visible="false">
【解决方案2】:
我想出了下面的代码,它。我仍在寻找一种没有循环的方法。
for (Object col : playListTableView.getColumns()) {
TableColumn colCasted = ((TableColumn)col);
if(colCasted.getText().equals("Artist")){
colCasted.setVisible(false);
}
}