How to add a tooltip for TableViewer cell's in Java SWT

前端 未结 1 1501
日久生厌
日久生厌 2021-01-06 05:09

I have a TableViewer 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

相关标签:
1条回答
  • 2021-01-06 05:43

    For TableViewer add a call to enable tool tips with:

    ColumnViewerToolTipSupport.enableFor(viewer);
    

    where viewer is your table viewer.

    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)
    

    to return the text.

    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.

    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'
            }
        });
    }
    
    0 讨论(0)
提交回复
热议问题