为空javafx表删除默认的"表中没有内容"文本

Jap*_*eva 46 java javafx fxml scenebuilder javafx-8

我想删除或更改空javafx表显示的默认文本,No content in table使其更有意义.

例如,在一个显示学生的表格中,当没有学生要展示时,我希望它在课程表中说"数据库中没有学生"或"学生没有课程".我不知道在javafx中是否可以通过Java代码,使用场景构建器或在IDE中编辑.fxml文件.到目前为止,我已经在场景构建器中查看了tableview的属性,但是我看不到此文本的相关属性

Bre*_*dan 89

你是正确的,因为TableView控件没有一个Stringsetter方法,它直接操作表空时显示的文本.你想要做的是使用TableView的占位符属性,该属性可以设置为Node类型的任何对象.例如...

myTableView.setPlaceholder(new Label("My table is empty message"));
Run Code Online (Sandbox Code Playgroud)


K. *_*Gol 36

您也可以通过添加带有空标签的占位符从*.fxml文件中执行此操作.

<TableView>
    <placeholder>
        <Label text=""/>
    </placeholder>
    <columns>
        <TableColumn text="Column1"/>
        <TableColumn text="Column2"/>
    </columns>
</TableView>
Run Code Online (Sandbox Code Playgroud)

  • @CarlosLópez即使你的问题现在很老了,也可以帮助其他人:你更可能忘记在FXML文件的开头导入`Label`:`<?import javafx.scene.control.Label?>` (2认同)
  • @Pagbo 今天这确实对我有帮助 (2认同)