Удалите текст по умолчанию «нет содержимого в таблице» для пустой таблицы javafx.

Я хотел бы удалить или изменить текст по умолчанию, отображаемый пустой таблицей javafx, с No content in table на что-то более значимое для пользователя.

Например, в таблице, показывающей студентов, когда нет студентов для отображения, я хочу, чтобы в таблице курсов было указано «Нет студентов в базе данных» или «У студента нет курсов». Я не знаю, возможно ли это в javafx, либо с помощью java-кода, с помощью построителя сцен, либо путем редактирования файла .fxml в среде IDE. До сих пор я просматривал свойства таблицы в построителе сцен и не вижу связанного свойства для этого текста.


person Japheth Ongeri - inkalimeva    schedule 15.07.2014    source источник


Ответы (2)


Вы правы в том, что TableView не имеет метода установки String, который напрямую манипулирует текстом, отображаемым, когда таблица пуста. Вместо этого вы захотите использовать свойство-заполнитель, которое может быть установлено для любого объекта типа Узел. Например...

myTableView.setPlaceholder(new Label("My table is empty message"));
person Brendan    schedule 15.07.2014

Вы также можете сделать это из файла *.fxml, добавив заполнитель с пустой меткой.

<TableView>
    <placeholder>
        <Label text=""/>
    </placeholder>
    <columns>
        <TableColumn text="Column1"/>
        <TableColumn text="Column2"/>
    </columns>
</TableView>
person K. Gol    schedule 10.03.2016
comment
Это дает мне: javafx.fxml.LoadException: Label не является допустимым типом. - person Carlos López Marí; 16.03.2018
comment
@CarlosLópez Даже если ваша проблема уже устарела, она может помочь другим: вы, скорее всего, забудете импортировать Label в начале файла FXML: <?import javafx.scene.control.Label?> - person Pagbo; 07.09.2018
comment
@Pagbo действительно помог мне сегодня - person Kainix; 12.09.2018