【问题标题】:Remove the default 'no content in table' text for empty javafx table删除空 javafx 表的默认“表中无内容”文本
【发布时间】:2014-09-06 01:58:28
【问题描述】:

我想将空 javafx 表显示的默认文本从 No content in table 删除或更改为对用户更有意义的内容。

例如,在显示学生的表中,当没有要显示的学生时,我希望它为课程表显示“数据库中没有学生”或“学生没有课程”。我不知道这在 javafx 中是否可行,无论是通过 java 代码、使用场景生成器还是通过在 IDE 中编辑 .fxml 文件。到目前为止,我已经在场景构建器中查看了 tableview 的属性,但我看不到此文本的相关属性

【问题讨论】:

    标签: java javafx javafx-8 fxml scenebuilder


    【解决方案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 今天确实帮助了我
      猜你喜欢
      • 2013-12-26
      • 2019-01-27
      • 2018-12-21
      • 2015-05-17
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多