Remove the default 'no content in table' text for empty javafx table

23,223

Solution 1

You are correct in that the TableView control does not have a String setter method that directly manipulates the text shown when the table is empty. What you will want to do instead is use the TableView's placeholder property which can be set to any object of type Node. For example...

myTableView.setPlaceholder(new Label("My table is empty message"));

Solution 2

You can also do it from *.fxml file, by adding placeholder with empty label.

<TableView>
    <placeholder>
        <Label text=""/>
    </placeholder>
    <columns>
        <TableColumn text="Column1"/>
        <TableColumn text="Column2"/>
    </columns>
</TableView>
Share:
23,223
Japheth Ongeri - inkalimeva
Author by

Japheth Ongeri - inkalimeva

I am a developer of web applications, covering both the client-server side. I use Java and PHP for the back-end and HTML5, JavaScript and CSS3 for the front-end. I also create mobile clients using Android.

Updated on July 09, 2022

Comments

  • Japheth Ongeri - inkalimeva
    Japheth Ongeri - inkalimeva almost 2 years

    I would like to remove or change the default text shown by an empty javafx table from No content in table to something more meaningful for the user.

    For example in a table showing students, when there are no students to show I want it to say "No students in database" or "Student has no courses" for a courses table. I don't know if this is possible in javafx, either through java code, using scene builder, or by editing the .fxml file in an IDE. So far I have looked at the properties of the tableview in scene builder and I can't see a related property for this text