如何在Java SWT中为TableViewer单元格添加工具提示

问题描述 投票:4回答:1

我有一个表,每行代表不同的值。字符串有点长,我希望当我将鼠标悬停在特定单元格上时,工具提示应该弹出来自单元格的信息。

我写了这段代码但是没有显示工具提示,并且从未执行过getToolTipText方法:

columnMessage.setLabelProvider(new ColumnLabelProvider() {

    @Override
    public void update(ViewerCell cell) {
        // ... as now
    }

    @Override
    public String getToolTipText(Object element)
    {
         return getText(element);
    }

});
java swt jface
1个回答
11
投票

对于qazxsw poi,添加一个调用以启用工具提示:

TableViewer

其中ColumnViewerToolTipSupport.enableFor(viewer); 是你的桌面浏览器。

这要求表的标签提供者来自viewer(或者从CellLabelProvider派生的类之一)。

然后,您可以覆盖标签提供程序中的许多方法来控制工具提示:

ColumnLabelProvider

返回文本。

public String getToolTipText(Object element)

用于图像,颜色,字体和样式

public Image getToolTipImage(Object object)
public Color getToolTipBackgroundColor(Object object)
public Color getToolTipForegroundColor(Object object)
public Font getToolTipFont(Object object)
public int getToolTipStyle(Object object)

控制刀尖偏移量,以及何时显示。

所有这些都有默认值,所以public Point getToolTipShift(Object object) public int getToolTipTimeDisplayed(Object object) public int getToolTipDisplayDelayTime(Object object) 是你真正需要覆盖的唯一一个。

因此,对于您的代码,您可能会:

getToolTipText
© www.soinside.com 2019 - 2024. All rights reserved.