如何在Java SWT中为TableViewer单元添加工具提示 [英] How to add a tooltip for TableViewer cell's in Java SWT

查看:681
本文介绍了如何在Java SWT中为TableViewer单元添加工具提示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a table where each row represents different values. The string being kinda long, I would like that when I hover the mouse over the specific cell, a tooltip should pop-up with the information from the cell.

我写的此代码但工具提示未被替换, getToolTipText 方法永远不会执行:

I wrote this code but tooltip is not displaied and getToolTipText method is never executed:

columnMessage.setLabelProvider(new ColumnLabelProvider() {

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

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

});


推荐答案

对于 TableViewer 添加调用以启用工具提示:

For TableViewer add a call to enable tool tips with:

ColumnViewerToolTipSupport.enableFor(viewer);

其中 viewer 是您的表格查看器。

where viewer is your table viewer.

这要求表的标签提供者派生自 CellLabelProvider (或派生的类之一)从那里如 ColumnLabelProvider )。

This requires that your label provider(s) for the table are derived from CellLabelProvider (or one of the classes derived from that such as ColumnLabelProvider).

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

You can then override a number of methods in the label provider to control the tool tips:

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)

图片,颜色,字体和样式

for images, colors, fonts and style

public Point getToolTipShift(Object object)
public int getToolTipTimeDisplayed(Object object)
public int getToolTipDisplayDelayTime(Object object)

控制工具尖端偏移量,以及何时显示。

to control the tool tip offset, and when it is displayed.

所有这些都有默认值,因此 getToolTipText 是唯一真正需要覆盖的。

There are defaults for all of these so getToolTipText is the only one you really need to override.

因此,对于您的代码,您可以这样做:

So for your code you might do:

columnMessage.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            ... as now
        }

        @Override
        public String getToolTipText(Object element)
        {
           // TODO return the tool tip text for 'element'
        }

        @Override
        public String getText(Object element)
        {
          // TODO get text from 'element'
        }
    });
}

这篇关于如何在Java SWT中为TableViewer单元添加工具提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆