此Java教程针对JDK 8编写。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言特性摘要,请参见Java语言变更。
有关所有JDK版本的新功能、增强功能和已删除或弃用选项的信息,请参见JDK发行说明。
为任何JComponent
对象创建工具提示很简单。使用setToolTipText
方法为组件设置工具提示。例如,要为三个按钮添加工具提示,只需添加三行代码:
b1.setToolTipText("单击此按钮以禁用中间按钮。"); b2.setToolTipText("此中间按钮在单击时不会有反应。"); b3.setToolTipText("单击此按钮以启用中间按钮。");
当程序用户将光标停留在任何按钮上时,按钮的工具提示会出现。您可以通过运行ButtonDemo
示例来查看此功能的效果,该示例在按钮、复选框和单选按钮的使用方法中有说明。下面是在ButtonDemo
示例中将光标停留在左侧按钮上时出现的工具提示的图片。
对于具有多个部分的组件(例如选项卡窗格),通常可以根据光标下的组件部分来变化工具提示文本。例如,选项卡窗格可以使用此功能来解释单击光标下的选项卡时会发生什么。当您实现选项卡窗格时,可以在传递给addTab
或setToolTipTextAt
方法的参数中指定特定于选项卡的工具提示文本。
即使在没有用于设置特定部分工具提示文本的API的组件上,通常也可以自行完成该任务。如果组件支持渲染器,那么可以在自定义渲染器上设置工具提示文本。在表格和树部分提供了由自定义渲染器确定的工具提示文本的示例。对于所有JComponent
来说,另一种方法是创建组件的子类并覆盖其getToolTipText(MouseEvent)
方法。
大多数设置工具提示所需的API属于JComponent
类,因此被大多数Swing组件继承。其他工具提示API可以在诸如JTabbedPane
之类的个别类中找到。通常,这些API足以指定和显示工具提示;您通常不需要直接处理实现类JToolTip
和ToolTipManager
。
下表列出了JComponent
类中的工具提示API。有关各个组件对工具提示的支持信息,请参阅相应组件的使用方法部分。
方法 | 目的 |
---|---|
setToolTipText(String) | 如果指定的字符串不为空,则该方法将组件注册为具有工具提示,并在显示时给工具提示指定的文本。如果参数为null,则该方法关闭此组件的工具提示。 |
String getToolTipText() | 返回之前使用setToolTipText 指定的字符串。 |
String getToolTipText(MouseEvent) | 默认情况下,返回与getToolTipText() 相同的值。诸如JTabbedPane 、JTable 和JTree 之类的多部分组件会重写此方法以返回与鼠标事件位置相关联的字符串。例如,选项卡窗格中的每个选项卡可以具有不同的工具提示文本。 |
Point getToolTipLocation(MouseEvent) | 返回组件工具提示的左上角出现的位置(以接收组件的坐标系为单位)。参数是导致显示工具提示的事件。默认返回值为null,这告诉Swing系统选择一个位置。 |
此表列出了一些使用工具提示的示例,并指向这些示例的描述位置。
示例 | 描述位置 | 注释 |
---|---|---|
ButtonDemo |
本节和如何使用按钮、复选框和单选按钮 | 使用工具提示为按钮提供指令。 |
IconDemo |
如何使用图标 | 使用标签中的工具提示提供图像的名称和大小信息。 |
TabbedPaneDemo |
如何使用选项卡窗格 | 使用addTab 方法的参数中指定的选项卡特定工具提示文本。 |
TableRenderDemo |
为单元格指定工具提示 | 使用渲染器为表格添加工具提示。 |
TableToolTipsDemo |
为单元格指定工具提示,为列标题指定工具提示 | 使用多种技术为表格添加工具提示。 |
TreeIconDemo2 |
自定义树的显示 | 使用自定义渲染器为树添加工具提示。 |
ActionDemo |
如何使用动作 | 为使用Action 创建的按钮添加工具提示。 |