Create a balloon tool tip for text box?

前端 未结 2 1848
花落未央
花落未央 2021-01-16 06:26

How to create a balloon tool tip for a text box in SWT?

相关标签:
2条回答
  • 2021-01-16 06:48

    For a standard os tooltip, use:

    org.eclipse.swt.widgets.Control.setToolTipText(String)

    For example,

        final Text textArea = new Text(shell, SWT.BORDER);
        textArea.setToolTipText("Standard tooltip \n for swt control.");
    

    Here what it would look like on Windows 7:

    0 讨论(0)
  • 2021-01-16 07:02

    Here is a modified SWT snippet which shows how to add balloon tooltip to SWT Text instance.

    Next time please consider to ask more specifically, I don't now, if this is what are you looking for..

    /*
     * Tooltip example snippet: create a balloon tooltip for a tray item
     *
     * For a list of all SWT example snippets see
     * http://www.eclipse.org/swt/snippets/
     * 
     * @since 3.2
     */
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.FocusEvent;
    import org.eclipse.swt.events.FocusListener;
    import org.eclipse.swt.graphics.Point;
    import org.eclipse.swt.layout.RowLayout;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;
    import org.eclipse.swt.widgets.ToolTip;
    
    public class TextFieldTooltip {
    
        public static void main(String[] args) {
            Display display = new Display();
            Shell shell = new Shell(display);
            shell.setLayout(new RowLayout(SWT.VERTICAL));
            final ToolTip tip = new ToolTip(shell, SWT.BALLOON);
            tip.setMessage("Here is a message for the user. When the message is too long it wraps. I should say something cool but nothing comes to my mind.");
    
            Text tfTooltip = new Text(shell, SWT.BORDER);
            tfTooltip.setText("sample text field");
            tfTooltip.addFocusListener(new FocusListener() {
    
                @Override
                public void focusLost(FocusEvent e) {
                    tip.setVisible(false);
                }
    
                @Override
                public void focusGained(FocusEvent e) {
                    Text actionWidget = (Text) e.widget;
                    Point loc = actionWidget.toDisplay(actionWidget.getLocation());
                    tip.setLocation(loc.x + actionWidget.getSize().x - actionWidget.getBorderWidth(), loc.y);
                    tip.setVisible(true);
                }
            });
            Text tfNext = new Text(shell, SWT.BORDER);
            tfNext.setText("TF without tooltip");
            shell.setBounds(50, 50, 300, 200);
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
            display.dispose();
        }
    }
    
    0 讨论(0)
提交回复
热议问题