删除空 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&lt;?import javafx.scene.control.Label?&gt; @Pagbo 今天确实帮助了我

以上是关于删除空 javafx 表的默认“表中无内容”文本的主要内容,如果未能解决你的问题,请参考以下文章

单击 JavaFX 突出显示 TextField 中的所有文本

JavaFX 动态添加新的文本字段

MySQL 表的创建修改删除

具有透明背景的 JavaFX 按钮

JavaFX中的可复制Label / TextField / LabeledText

JavaFX 标签高度