删除空 javafx 表的默认“表中无内容”文本
Posted
技术标签:
【中文标题】删除空 javafx 表的默认“表中无内容”文本【英文标题】:Remove the default 'no content in table' text for empty javafx table 【发布时间】:2014-09-06 01:58:28 【问题描述】:我想将空 javafx 表显示的默认文本从 No content in table
删除或更改为对用户更有意义的内容。
例如,在显示学生的表中,当没有要显示的学生时,我希望它为课程表显示“数据库中没有学生”或“学生没有课程”。我不知道这在 javafx 中是否可行,无论是通过 java 代码、使用场景生成器还是通过在 IDE 中编辑 .fxml 文件。到目前为止,我已经在场景构建器中查看了 tableview 的属性,但我看不到此文本的相关属性
【问题讨论】:
【参考方案1】:您是正确的,TableView 控件没有String
setter 方法,该方法可以在表格为空时直接操作显示的文本。您想要做的是使用 TableView 的 placeholder property,它可以设置为 Node 类型的任何对象。比如……
myTableView.setPlaceholder(new Label("My table is empty message"));
【讨论】:
【参考方案2】:您也可以从 *.fxml 文件中执行此操作,方法是添加带有空标签的占位符。
<TableView>
<placeholder>
<Label text=""/>
</placeholder>
<columns>
<TableColumn text="Column1"/>
<TableColumn text="Column2"/>
</columns>
</TableView>
【讨论】:
它给了我:javafx.fxml.LoadException: Label is not a valid type. @CarlosLópez 即使您的问题现在已经很老了,它也可以帮助其他人:您更有可能忘记在 FXML 文件的开头导入Label
:<?import javafx.scene.control.Label?>
@Pagbo 今天确实帮助了我以上是关于删除空 javafx 表的默认“表中无内容”文本的主要内容,如果未能解决你的问题,请参考以下文章
单击 JavaFX 突出显示 TextField 中的所有文本