2015-04-15 107 views
3

我有一张表格,其中每行表示不同的值。字符串有点长,我希望当我将鼠标悬停在特定的单元格上时,工具提示应该弹出单元格中的信息。如何在Java中添加表格单元格的工具提示SWT

/**这里是我的代码*/

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

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

}

+1

你只是使用'Table'或者您正在使用的JFace'TableViewer'? –

+0

@ greg-449我输入完全相同的问题。太慢了......再次。 – Baz

+0

我正在使用JFace TableViewer – Vishal89

回答

10

对于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是您真正需要覆盖的唯一一个。

因此,对于你的代码,你可以做:

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' 
     } 
    }); 
} 
+1

TableViewerColumn不是标签提供程序,请再次查看您的代码或将其显示给我们。你应该在列上有一个'setLabelProvider'调用。 –

+0

我编辑了我的问题并提供了代码。你能检查一下吗? – Vishal89

+1

根据您的代码添加示例 –

相关问题