Javafx 如何知道TableView中的项是否被截断(省略)?

Javafx 如何知道TableView中的项是否被截断(省略)?,javafx,javafx-8,Javafx,Javafx 8,我使用的是TableView。需要显示的字符串数据长度可变。我如何知道字符串数据是否太长(因此得到了省略号) 我的猜测是使用自定义TableCell(调用setCellFactory()),在updateItem()中我应该查询数据的像素宽度,但我不知道如何查询 column.setCellFactory(column -> new TableCell<Transaction, String>() { @O

我使用的是TableView。需要显示的字符串数据长度可变。我如何知道字符串数据是否太长(因此得到了省略号)

我的猜测是使用自定义TableCell(调用setCellFactory()),在updateItem()中我应该查询数据的像素宽度,但我不知道如何查询

        column.setCellFactory(column ->
            new TableCell<Transaction, String>() {
                @Override
                protected void updateItem(final String item, final boolean empty) {
                    super.updateItem(item, empty);
                    setText(item);


                    if (/*measuredWidth > getWidth()*/) {
                        setTooltip(new Tooltip(item));
                    }
                }
            }
    );
column.setCellFactory(column->
新表单元格(){
@凌驾
受保护的void updateItem(最终字符串项,最终布尔值为空){
super.updateItem(项,空);
setText(项目);
如果(/*measuredWidth>getWidth()*/){
设置工具提示(新工具提示(项目));
}
}
}
);
有什么想法吗?

column.setCellFactory(col->newtableCell())
column.setCellFactory(col -> new TableCell<Object, String>()
    {
        @Override
        protected void updateItem(final String item, final boolean empty)
        {
            super.updateItem(item, empty);
            setText(item);
            TableColumn tableCol = (TableColumn) col;

            if (item != null && tableCol.getWidth() < new Text(item + "  ").getLayoutBounds().getWidth())
            {
                tooltipProperty().bind(Bindings.when(Bindings.or(emptyProperty(), itemProperty().isNull())).then((Tooltip) null).otherwise(new Tooltip(item)));
            } else
            {
                tooltipProperty().bind(Bindings.when(Bindings.or(emptyProperty(), itemProperty().isNull())).then((Tooltip) null).otherwise((Tooltip) null));
            }

        }
    });
{ @凌驾 受保护的void updateItem(最终字符串项,最终布尔值为空) { super.updateItem(项,空); setText(项目); TableColumn tableCol=(TableColumn)col; if(item!=null&&tableCol.getWidth()
我不确定,但我知道对于标签,您可以这样做:
label.setMinWidth(Region.USE\u PREF\u SIZE)可能是类似的…你可以查询单元格的prefWidth并将其与列宽进行比较(猜测,没有尝试;)你找到这个了吗?我也想这么做…还没有。我为所有项目添加了工具提示,不管它们的宽度是多少。现在,好吧,我想出来了。。。