2015-04-15 56 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

根據您的代碼添加示例 –

相關問題