如何使用工具提示

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

b1.setToolTipText("Click this button to disable the middle button.");
b2.setToolTipText("This middle button does not react when you click it.");
b3.setToolTipText("Click this button to enable the middle button.");

当程序的用户将光标停在程序的任何按钮上时,该按钮的工具提示就会出现。您可以通过运行ButtonDemo示例(在如何使用按钮,复选框和单选按钮中进行说明)来查看此内容。这是ButtonDemo示例中的光标悬停在左侧按钮上时出现的工具提示的图片。

显示工具提示的 ButtonDemo。

对于诸如具有多个部分的选项卡式窗格的组件,更改工具提示文本以反映光标下方的组件部分通常是有意义的。例如,选项卡式窗格可以使用此功能来解释单击光标下的选项卡时将发生的情况。实现选项卡式窗格时,可以在传递给addTabsetToolTipTextAt方法的参数中指定特定于选项卡的工具提示文本。

即使在没有用于设置 Component 特定工具提示文本的 API 的组件中,您通常也可以自己完成这项工作。如果组件支持渲染器,则可以在自定义渲染器上设置工具提示文本。 tabletree部分提供了由自定义渲染器确定的工具提示文本的示例。适用于所有JComponent的替代方法是创建组件的子类并覆盖其getToolTipText(MouseEvent)方法。

工具提示 API

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

下表列出了JComponent类中的工具提示 API。有关各个组件对工具提示的支持的信息,请参阅所涉及组件的“操作方法”部分。

JComponent 类中的工具提示 API

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

使用工具提示的示例

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

ExampleWhere DescribedNotes
ButtonDemo本部分和如何使用按钮,复选框和单选按钮使用工具提示提供按钮说明。
IconDemo如何使用图标在标签中使用工具提示来提供图像的名称和尺寸信息。
TabbedPaneDemo如何使用选项卡式窗格使用在addTab方法的参数中指定的特定于选项卡的工具提示文本。
TableRenderDemo指定单元格的工具提示使用渲染器将工具提示添加到表中。
TableToolTipsDemo指定单元格的工具提示, 指定列标题的工具提示使用各种技术将工具提示添加到表中。
TreeIconDemo2自定义树的显示使用自定义渲染器将工具提示添加到树中。
ActionDemo如何使用动作将工具提示添加到使用Action s 创建的按钮上。