如何在JavaFX表鼠标悬停的每个单元格上设置工具提示?

时间:2012-11-20 07:06:29

标签: java tooltip render javafx-2 cell

我是JavaFX的新手。我创建了TableView,看起来像附加的图像。鼠标悬停时,我想在桌子的每个单元格上显示工具提示。我已经设置了两个Cell Factory来渲染,以便在第一列和第二列中显示复选框和图像。因此,显示工具提示不得影响这两个渲染列。有没有办法在鼠标悬停时在桌子的每个单元格上显示工具提示,这不应该影响其他单个列单元格渲染。

enter image description here

3 个答案:

答案 0 :(得分:7)

以下是我在某列的单元格中需要工具提示时所执行的操作:

TableColumn<Person, String> nameCol = new TableColumn<Person, String>("Name");

nameCol.setCellFactory
 (
   column ->
    {
      return new TableCell<Person, String>()
       {
         @Override
         protected void updateItem(String item, boolean empty)
          {
             super.updateItem(item, empty);
             setText( item );
             setTooltip(new Tooltip("Live is short, make most of it..!"));
          }
       };
    });

答案 1 :(得分:3)

只需创建工具提示并在您想要的节点上安装

    Cell c = new Cell();
    Tooltip.install(c, new Tooltip("text"));

答案 2 :(得分:3)

Tooltip in action

如果有人在寻找容易的东西,这是一个通用的解决方案。它遵循与其他自定义单元工厂相同的约定。

只需创建一个新类并将TooltippedTableCell粘贴到其中,然后像这样设置自定义单元格工厂:

someColumn.setCellFactory(TooltippedTableCell.forTableColumn());