How to add a tooltip to a TableView header cell in JavaFX 8


Does anyone know how to add a tooltip to a column header in a TableView ?

There are many places where are explained how to add the tooltip to data cells, but I didn't find a way to add the tooltip to header.

Using the tool ScenicView, I can see that the headers are Labels inside a TableColumnHeader object, but It seems that It is not a public object.

Any suggestions ?

4/22/2014 4:13:06 PM

Accepted Answer

    TableColumn<Person, String> firstNameCol = new TableColumn<>();
    Label firstNameLabel = new Label("First Name");
    firstNameLabel.setTooltip(new Tooltip("This column shows the first name"));
4/22/2014 4:16:43 PM

This is an extended answer to James_D. (I don't have the reputation to comment):

To make the label connect with textProperty of the column and just hide the original text, so it does not mess up the rest of the table functionality:

nameLabel.setMaxWidth(Double.MAX_VALUE); //Makes it take up the full width of the table column header and tooltip is shown more easily.


.table-view .column-header .label{
    -fx-content-display: graphic-only;
.table-view .column-header .label .column-header-label{
    -fx-content-display: text-only;

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow