`
equalxx
  • 浏览: 65347 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

SWT控件添加tooltip的若干方法

 
阅读更多

以下内容源网址:

http://jexp.ru/index.php/Java_Tutorial/SWT/ToolTip#Add_ToolTip_to_Shell_Window

Add ToolTip to Shell Window

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class ShellWindowToolTip {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setToolTipText ("Shell \n toolTip");
 
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}

 

 

 

 

Add ToolTip to TabItem

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
public class TabItemToolTip{
public static void main (String [] args) {
  Display display = new Display ();
  Shell shell = new Shell (display);
  TabFolder folder = new TabFolder (shell, SWT.BORDER);
  folder.setSize (200, 200);
  TabItem item0 = new TabItem (folder, 0);
  item0.setToolTipText ("TabItem \n toolTip");
 
  shell.open ();
  while (!shell.isDisposed ()) {
    if (!display.readAndDispatch ()) display.sleep ();
  }
  display.dispose ();
}
}

 

 

 

 

Add ToolTip to ToolItem

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
public class ToolItemToolTip {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    ToolBar bar = new ToolBar(shell, SWT.BORDER);
    bar.setBounds(0, 20, 200, 64);
    ToolItem item1 = new ToolItem(bar, 0);
    item1.setToolTipText("ToolItem \n toolTip");
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}

 

 

 

 

Create fake tool tips for items in a table

/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
//package org.eclipse.swt.snippets;
/*
 * Tool Tips example snippet: create fake tool tips for items in a table
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
public class TooltipTableItem {
  public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    final Table table = new Table(shell, SWT.BORDER);
    for (int i = 0; i < 20; i++) {
      TableItem item = new TableItem(table, SWT.NONE);
      item.setText("item " + i);
    }
    // Disable native tooltip
    table.setToolTipText("");
    // Implement a "fake" tooltip
    final Listener labelListener = new Listener() {
      public void handleEvent(Event event) {
        Label label = (Label) event.widget;
        Shell shell = label.getShell();
        switch (event.type) {
        case SWT.MouseDown:
          Event e = new Event();
          e.item = (TableItem) label.getData("_TABLEITEM");
          // Assuming table is single select, set the selection as if
          // the mouse down event went through to the table
          table.setSelection(new TableItem[] { (TableItem) e.item });
          table.notifyListeners(SWT.Selection, e);
          shell.dispose();
          table.setFocus();
          break;
        case SWT.MouseExit:
          shell.dispose();
          break;
        }
      }
    };
    Listener tableListener = new Listener() {
      Shell tip = null;
      Label label = null;
      public void handleEvent(Event event) {
        switch (event.type) {
        case SWT.Dispose:
        case SWT.KeyDown:
        case SWT.MouseMove: {
          if (tip == null)
            break;
          tip.dispose();
          tip = null;
          label = null;
          break;
        }
        case SWT.MouseHover: {
          TableItem item = table.getItem(new Point(event.x, event.y));
          if (item != null) {
            if (tip != null && !tip.isDisposed())
              tip.dispose();
            tip = new Shell(shell, SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
            tip.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
            FillLayout layout = new FillLayout();
            layout.marginWidth = 2;
            tip.setLayout(layout);
            label = new Label(tip, SWT.NONE);
            label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
            label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
            label.setData("_TABLEITEM", item);
            label.setText(item.getText());
            label.addListener(SWT.MouseExit, labelListener);
            label.addListener(SWT.MouseDown, labelListener);
            Point size = tip.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);
            Rectangle rect = item.getBounds(0);
            Point pt = table.toDisplay(rect.x, rect.y);
            tip.setBounds(pt.x, pt.y, size.x, size.y);
            tip.setVisible(true);
          }
        }
        }
      }
    };
    table.addListener(SWT.Dispose, tableListener);
    table.addListener(SWT.KeyDown, tableListener);
    table.addListener(SWT.MouseMove, tableListener);
    table.addListener(SWT.MouseHover, tableListener);
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}

 

 

 

 

Show a tool tip inside a rectangle

/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
//package org.eclipse.swt.snippets;
/*
 * Tool Tips example snippet: show a tool tip inside a rectangle
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class ToolTipRectangle {
  public static void main(String[] args) {
    Display display = new Display();
    final Color[] colors = { display.getSystemColor(SWT.COLOR_RED),
        display.getSystemColor(SWT.COLOR_GREEN), display.getSystemColor(SWT.COLOR_BLUE), };
    final Rectangle[] rects = { new Rectangle(10, 10, 30, 30), new Rectangle(20, 45, 25, 35),
        new Rectangle(80, 80, 10, 10), };
    final Shell shell = new Shell(display);
    Listener mouseListener = new Listener() {
      public void handleEvent(Event event) {
        switch (event.type) {
        case SWT.MouseEnter:
        case SWT.MouseMove:
          for (int i = 0; i < rects.length; i++) {
            if (rects[i].contains(event.x, event.y)) {
              String text = "ToolTip " + i;
              if (!(text.equals(shell.getToolTipText()))) {
                shell.setToolTipText("ToolTip " + i);
              }
              return;
            }
          }
          shell.setToolTipText(null);
          break;
        }
      }
    };
    shell.addListener(SWT.MouseMove, mouseListener);
    shell.addListener(SWT.MouseEnter, mouseListener);
    shell.addListener(SWT.Paint, new Listener() {
      public void handleEvent(Event event) {
        GC gc = event.gc;
        for (int i = 0; i < rects.length; i++) {
          gc.setBackground(colors[i]);
          gc.fillRectangle(rects[i]);
          gc.drawRectangle(rects[i]);
        }
      }
    });
    shell.setSize(200, 200);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}

 如果觉得文章很好,请鼓励一下我吧:D爱的么么哒!


 


  • 大小: 144.5 KB
分享到:
评论

相关推荐

    给对话框控件添加 Tooltip

    在这个场景中,我们讨论的是如何在对话框控件中添加自定义的Tooltip,即`CToolTipCtrl`。 `CToolTipCtrl`是MFC(Microsoft Foundation Classes)库中用于处理Tooltip控制的类。这个类提供了创建、显示和管理Tooltip...

    博客-win32 工具提示ToolTip控件的使用

    我们可以直接在控件的属性中设置`TipText`,并且`CToolTipCtrl`类已经封装了添加、删除和更新`ToolTip`的操作,简化了编程过程。 总之,Win32 API中的`ToolTip`控件提供了一种直观的方式来增强用户界面的可理解性。...

    标准控件及数据窗口的tooltip示例

    通过这个示例,开发者不仅可以学会如何为标准控件和数据窗口字段添加tooltip,还可以了解如何在实践中应用和自定义这些组件,提升应用的交互性和用户体验。在实际项目中,合理运用tooltip可以有效减少用户的困惑,使...

    为控件添加提示信息的例程

    "为控件添加提示信息"是提升用户体验的一种常见方法。在Windows应用程序开发中,`ToolTipCtrl`是一个常用的类,用于创建并管理显示在控件上方的小型提示窗口,通常用来显示用户将鼠标悬停在控件上时的简短帮助信息。...

    在Disabled的控件上顯示ToolTip

    在Disabled的控件上顯示ToolTip 在WINFORM中,如果一个控件有设置tooltip,那么鼠标移上去会显示出提示文字.但是当此控件的Enabled=false时,这个Tooltip是无效的. 本示例就是用来解决这个问题.

    echarts的axisLabel添加tooltip功能

    以上就是如何在ECharts中为`axisLabel`添加`tooltip`功能的详细步骤。通过这种方式,我们不仅可以增强图表的交互性,还能确保用户能获取到更多关于数据的信息,从而提高数据可视化的有效性。在实践中,还可以根据...

    WPF修改Tooltip样式

    在Windows Presentation Foundation (WPF) 中,Tooltip是一个用于显示与鼠标指针相关的简短提示信息的控件。它通常在用户将鼠标悬停在其他UI元素上时出现,提供额外的信息。在默认情况下,Tooltip的样式是有限的,但...

    Extjs4添加tooltip

    Extjs4的textfield控件竟然没有tooltip悬浮提示,这应该算是个bug吧。网上查了很多,也没有方案。后来自己通过查询并整理出这个方案,终于实现了。 思想如下: 在textfield渲染时注册mouseover事件,然后在其中调用...

    MFC最全ToolTip例子+源文件

    在Microsoft Foundation Class (MFC)库中,ToolTip控件是一个非常实用的功能,它可以在用户将鼠标悬停在某个控件上时显示简短的帮助文本。`MFC最全ToolTip例子+源文件`这个资源包提供了关于如何在MFC应用程序中使用...

    普通控件和数据窗口的tooltip示例pb9

    标题中的“普通控件和数据窗口的tooltip示例pb9”指的是在PowerBuilder 9(PB9)环境中,如何为常见的控件和数据窗口对象添加并实现tooltip功能的实例。Tooltip是一种用户界面元素,当鼠标悬停在某个控件上时,会...

    C#中datagridview使用tooltip控件显示单元格内容的方法

    总结来说,C#中使用`DataGridView`和`Tooltip`控件显示单元格内容的方法涉及以下关键步骤: 1. 初始化`DataGridView`和`Tooltip`控件。 2. 绑定数据源到`DataGridView`。 3. 监听`CellMouseEnter`和`CellMouseLeave`...

    C# 使用GDI+绘制漂亮的ToolTip控件

    自定义的ToolTip控件应提供方法来切换显示样式,例如大图标、小图标或无图标的模式。这可以通过条件判断来决定绘制时是否加载和显示图像。 4. **响应用户交互** 当用户点击或悬停在关联控件上时,自定义的ToolTip...

    vb.net中tooltip控件应用

    1. **添加Tooltip控件** 要在VB.NET项目中使用Tooltip,首先需要将它添加到窗体上。这可以通过打开设计视图,从工具箱中拖动Tooltip控件到窗体上来完成。尽管Tooltip本身并不直接在界面上可见,但它会在运行时为...

    在siverlight中基于Popup浮动窗体控件模拟ToolTip的实现源码例子

    在Silverlight中,为了模拟一个Tooltip,我们通常会利用Popup控件来创建一个自定义的浮窗体。Popup控件是Silverlight中的一个非常有用的组件,它可以用来创建弹出式窗口,这些窗口可以在用户交互时动态显示或隐藏,...

    VC 简洁的tooltip提示类

    1. **自动关联**:可能提供了自动将Tooltip与控件关联的功能,无需手动调用AddTool方法为每个控件设置Tooltip。 2. **多控件支持**:能够轻松地为多种类型的控件(如静态文本、编辑框、按钮等)添加Tooltip提示。 ...

    对超长HTML控件内容展现ToolTip信息控件代码

    5. **动态更新ToolTip内容**:在悬停事件触发时,根据当前控件的裁剪文本,动态更新ToolTip的内容。 6. **定位ToolTip**:为了确保ToolTip出现在合适的位置,可能需要使用JavaScript来计算并设置它的位置,使其跟随...

    最好用的jquery的tooltip控件

    你可以将这个Tooltip控件应用于各种场景,如提供帮助文本、显示详细信息、甚至用于创建互动的用户指南。 总的来说,Sexy Tooltips 1.1是jQuery的一个出色插件,它提供了美观且实用的Tooltip解决方案。通过深入理解...

    vc中tooltip应用

    首先,我们需要在资源视图中添加一个Tooltip控件,然后在类视图中关联一个`CToolTipCtrl`成员变量。接着,在对话框初始化函数(如`OnInitDialog`)中,使用`CToolTipCtrl::Create`创建并初始化Tooltip,并通过`...

    Tooltip

    在编程中,创建一个简单的Tooltip类是为了方便开发者在程序中的各种控件上快速添加Tooltip功能。这样的类通常会包含一些基本方法,如设置Tooltip文本、关联控件以及显示和隐藏Tooltip等。这样的设计可以使代码更加...

    tooltip控件 groupBox控件

    tooltip控件 groupBox控件

Global site tag (gtag.js) - Google Analytics