我是JavaFX
的新手。我创建了TableView
,看起来像附加的图像。鼠标悬停时,我想在桌子的每个单元格上显示工具提示。我已经设置了两个Cell Factory
来渲染,以便在第一列和第二列中显示复选框和图像。因此,显示工具提示不得影响这两个渲染列。有没有办法在鼠标悬停时在桌子的每个单元格上显示工具提示,这不应该影响其他单个列单元格渲染。
答案 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)
如果有人在寻找容易的东西,这是一个通用的解决方案。它遵循与其他自定义单元工厂相同的约定。
只需创建一个新类并将TooltippedTableCell粘贴到其中,然后像这样设置自定义单元格工厂:
someColumn.setCellFactory(TooltippedTableCell.forTableColumn());