文档

Java™ 教程
隐藏目录
如何使用工具提示
路径: 使用Swing创建GUI
课程: 使用Swing组件
章节: 如何使用各种组件

如何使用工具提示

为任何JComponent对象创建工具提示很简单。使用setToolTipText方法为组件设置工具提示。例如,要为三个按钮添加工具提示,只需添加三行代码:

b1.setToolTipText("单击此按钮以禁用中间按钮。");
b2.setToolTipText("此中间按钮在单击时不会有反应。");
b3.setToolTipText("单击此按钮以启用中间按钮。");

当程序用户将光标停留在任何按钮上时,按钮的工具提示会出现。您可以通过运行ButtonDemo示例来查看此功能的效果,该示例在按钮、复选框和单选按钮的使用方法中有说明。下面是在ButtonDemo示例中将光标停留在左侧按钮上时出现的工具提示的图片。

ButtonDemo showing a tool tip.

对于具有多个部分的组件(例如选项卡窗格),通常可以根据光标下的组件部分来变化工具提示文本。例如,选项卡窗格可以使用此功能来解释单击光标下的选项卡时会发生什么。当您实现选项卡窗格时,可以在传递给addTabsetToolTipTextAt方法的参数中指定特定于选项卡的工具提示文本。

即使在没有用于设置特定部分工具提示文本的API的组件上,通常也可以自行完成该任务。如果组件支持渲染器,那么可以在自定义渲染器上设置工具提示文本。在表格部分提供了由自定义渲染器确定的工具提示文本的示例。对于所有JComponent来说,另一种方法是创建组件的子类并覆盖其getToolTipText(MouseEvent)方法。

工具提示API

大多数设置工具提示所需的API属于JComponent类,因此被大多数Swing组件继承。其他工具提示API可以在诸如JTabbedPane之类的个别类中找到。通常,这些API足以指定和显示工具提示;您通常不需要直接处理实现类JToolTipToolTipManager

下表列出了JComponent类中的工具提示API。有关各个组件对工具提示的支持信息,请参阅相应组件的使用方法部分。

JComponent类中的工具提示API
方法 目的
setToolTipText(String) 如果指定的字符串不为空,则该方法将组件注册为具有工具提示,并在显示时给工具提示指定的文本。如果参数为null,则该方法关闭此组件的工具提示。
String getToolTipText() 返回之前使用setToolTipText指定的字符串。
String getToolTipText(MouseEvent) 默认情况下,返回与getToolTipText()相同的值。诸如JTabbedPaneJTableJTree之类的多部分组件会重写此方法以返回与鼠标事件位置相关联的字符串。例如,选项卡窗格中的每个选项卡可以具有不同的工具提示文本。
Point getToolTipLocation(MouseEvent) 返回组件工具提示的左上角出现的位置(以接收组件的坐标系为单位)。参数是导致显示工具提示的事件。默认返回值为null,这告诉Swing系统选择一个位置。

使用工具提示的示例

此表列出了一些使用工具提示的示例,并指向这些示例的描述位置。

示例 描述位置 注释
ButtonDemo 本节和如何使用按钮、复选框和单选按钮 使用工具提示为按钮提供指令。
IconDemo 如何使用图标 使用标签中的工具提示提供图像的名称和大小信息。
TabbedPaneDemo 如何使用选项卡窗格 使用addTab方法的参数中指定的选项卡特定工具提示文本。
TableRenderDemo 为单元格指定工具提示 使用渲染器为表格添加工具提示。
TableToolTipsDemo 为单元格指定工具提示为列标题指定工具提示 使用多种技术为表格添加工具提示。
TreeIconDemo2 自定义树的显示 使用自定义渲染器为树添加工具提示。
ActionDemo 如何使用动作 为使用Action创建的按钮添加工具提示。

上一页: 如何使用工具栏
下一页: 如何使用树