TrayIcon 对象表示可以添加到 system tray 的托盘图标。 TrayIcon 可以有一个工具提示(文本)、一个图像、一个弹出菜单和一组与之关联的监听器。
一个TrayIcon可以生成各种MouseEvents 并支持添加相应的监听器来接收这些事件的通知。 TrayIcon 自己处理一些事件。例如,默认情况下,当在 TrayIcon 上执行鼠标右键单击时,它会显示指定的弹出菜单。当鼠标悬停在 TrayIcon 上时,会显示工具提示(此行为取决于平台)。
Note: 当 MouseEvent 被分派给其注册的监听器时,其 component 属性将设置为 null。 (请参阅 ComponentEvent.getComponent() )source 属性将设置为此 TrayIcon。 (参见 EventObject.getSource() )
笔记:一个行为良好的 TrayIcon 实现将分配不同的手势来显示弹出菜单和选择托盘图标。
TrayIcon 可以生成 ActionEvent 。在某些平台上,当用户使用鼠标或键盘选择托盘图标时会发生这种情况。
如果安装了 SecurityManager,则必须授予 AWTPermission accessSystemTray 才能创建 TrayIcon。否则构造函数将抛出 SecurityException。
有关如何使用 TrayIcon API 的示例,请参阅 SystemTray 类概述。
- 实现注意事项:
-
设置
apple.awt.enableTemplateImages属性后,与此类实例关联的所有图像都被本机桌面系统视为模板图像。这意味着所有颜色信息都将被丢弃,并且当桌面主题和/或颜色发生变化时,图像会自动调整为可见。此属性仅影响 MacOSX。 - 自从:
- 1.6
- 参见:
-
内部类总结
内部类 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddActionListener(ActionListener listener) 添加指定的动作监听器以从这个TrayIcon接收ActionEvents。voidaddMouseListener(MouseListener listener) 添加指定的鼠标监听器以接收来自此TrayIcon的鼠标事件。voidaddMouseMotionListener(MouseMotionListener listener) 添加指定的鼠标监听器以接收来自此TrayIcon的鼠标运动事件。voiddisplayMessage(String caption, String text, TrayIcon.MessageType messageType) 在托盘图标附近显示一条弹出消息。返回此托盘图标触发的操作事件的命令名称。返回在此TrayIcon上注册的所有动作监听器的数组。getImage()返回用于此TrayIcon的当前图像。返回在此TrayIcon上注册的所有鼠标监听器的数组。返回在此TrayIcon上注册的所有鼠标动作监听器的数组。返回与此TrayIcon关联的弹出菜单。getSize()返回托盘图标在系统托盘中占用的空间大小(以像素为单位)。返回与此TrayIcon关联的工具提示字符串。boolean返回自动调整大小属性的值。voidremoveActionListener(ActionListener listener) 移除指定的动作监听。voidremoveMouseListener(MouseListener listener) 删除指定的鼠标监听。voidremoveMouseMotionListener(MouseMotionListener listener) 删除指定的鼠标动作监听。voidsetActionCommand(String command) 设置由此托盘图标触发的动作事件的命令名称。void为此TrayIcon设置图像。voidsetImageAutoSize(boolean autosize) 设置自动调整大小属性。voidsetPopupMenu(PopupMenu popup) 为此TrayIcon设置弹出菜单。voidsetToolTip(String tooltip) 为此TrayIcon设置工具提示字符串。
-
构造方法详细信息
-
TrayIcon
使用指定图像创建TrayIcon。- 参数:
image- 要使用的Image- 抛出:
IllegalArgumentException- 如果image是nullUnsupportedOperationException- 如果当前平台不支持系统托盘HeadlessException- 如果GraphicsEnvironment.isHeadless()返回trueSecurityException- 如果未授予accessSystemTray权限- 参见:
-
TrayIcon
使用指定的图像和工具提示文本创建TrayIcon。工具提示在某些平台上可能不可见。- 参数:
image- 要使用的Imagetooltip- 用作工具提示文本的字符串;如果值为null则不显示工具提示- 抛出:
IllegalArgumentException- 如果image是nullUnsupportedOperationException- 如果当前平台不支持系统托盘HeadlessException- 如果GraphicsEnvironment.isHeadless()返回trueSecurityException- 如果未授予accessSystemTray权限- 参见:
-
TrayIcon
使用指定的图像、工具提示和弹出菜单创建TrayIcon。工具提示在某些平台上可能不可见。- 参数:
image- 要使用的Imagetooltip- 用作工具提示文本的字符串;如果值为null则不显示工具提示popup- 用于托盘图标弹出菜单的菜单;如果值为null则不显示弹出菜单- 抛出:
IllegalArgumentException- 如果image是nullUnsupportedOperationException- 如果当前平台不支持系统托盘HeadlessException- 如果GraphicsEnvironment.isHeadless()返回trueSecurityException- 如果未授予accessSystemTray权限- 参见:
-
-
方法详情
-
setImage
为此TrayIcon设置图像。之前的托盘图标图像在没有调用Image.flush()方法的情况下被丢弃——您需要手动调用它。如果图像表示动画图像,它将自动进行动画处理。
有关显示图像大小的详细信息,请参阅
setImageAutoSize(boolean)属性。使用当前正在使用的相同图像调用此方法没有任何效果。
- 参数:
image- 要使用的非空Image- 抛出:
NullPointerException- 如果image是null- 参见:
-
getImage
返回用于此TrayIcon的当前图像。- 返回:
- 图片
- 参见:
-
setPopupMenu
为此TrayIcon设置弹出菜单。如果popup是null,则没有弹出菜单与此TrayIcon关联。请注意,此
popup在托盘图标上设置之前或之后不得添加到任何父级。如果将它添加到某个父级,popup可能会从该父级中删除。popup只能设置在一个TrayIcon上。在多个TrayIcon上设置相同的弹出窗口将导致IllegalArgumentException。Note: 某些平台可能不支持在用户右键单击托盘图标时显示用户指定的弹出菜单组件。在这种情况下,要么不显示任何菜单,要么在某些系统上显示本机版本的菜单。
- 参数:
popup- 一个PopupMenu或null删除任何弹出菜单- 抛出:
IllegalArgumentException- 如果popup已经设置为另一个TrayIcon- 参见:
-
getPopupMenu
返回与此TrayIcon关联的弹出菜单。- 返回:
-
弹出菜单或
null(如果不存在) - 参见:
-
setToolTip
为此TrayIcon设置工具提示字符串。当鼠标悬停在图标上时,工具提示会自动显示。工具提示在某些平台上可能不可见。将工具提示设置为null会删除任何工具提示文本。显示时,工具提示字符串在某些平台上可能会被截断;可以显示的字符数取决于平台。- 参数:
tooltip- 工具提示的字符串;如果值为null,则不显示工具提示- 参见:
-
getToolTip
返回与此TrayIcon关联的工具提示字符串。- 返回:
-
工具提示字符串或
null(如果不存在) - 参见:
-
setImageAutoSize
public void setImageAutoSize(boolean autosize) 设置自动调整大小属性。自动调整大小确定托盘图像是否自动调整大小以适应为托盘上的图像分配的空间。默认情况下,自动调整大小属性设置为false。如果 auto-size 是
false,并且图像大小与托盘图标空间不匹配,则图像按原样绘制在该空间内——如果大于分配的空间,它将被裁剪。如果 auto-size 是
true,图像会被拉伸或缩小以适应托盘图标空间。- 参数:
autosize-true自动调整图像大小,false否则- 参见:
-
isImageAutoSize
public boolean isImageAutoSize()返回自动调整大小属性的值。- 返回:
true如果图像将自动调整大小,false否则- 参见:
-
addMouseListener
添加指定的鼠标监听器以接收来自此TrayIcon的鼠标事件。使用null值调用此方法无效。笔记:
MouseEvent的坐标(从TrayIcon接收)是相对于屏幕的,而不是TrayIcon。笔记:
MOUSE_ENTERED和MOUSE_EXITED鼠标事件不受支持。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 鼠标监听器- 参见:
-
removeMouseListener
删除指定的鼠标监听器。使用null或无效值调用此方法无效。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 鼠标监听器- 参见:
-
getMouseListeners
返回在此TrayIcon上注册的所有鼠标监听器的数组。- 返回:
-
所有在这个
TrayIcon上注册的MouseListeners或一个空数组(如果当前没有注册鼠标监听器) - 参见:
-
addMouseMotionListener
添加指定的鼠标监听器以接收来自此TrayIcon的鼠标运动事件。使用null值调用此方法无效。笔记:
MouseEvent的坐标(从TrayIcon接收)是相对于屏幕的,而不是TrayIcon。笔记:不支持
MOUSE_DRAGGED鼠标事件。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 鼠标监听器- 参见:
-
removeMouseMotionListener
删除指定的鼠标动作监听器。使用null或无效值调用此方法无效。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 鼠标监听器- 参见:
-
getMouseMotionListeners
返回在此TrayIcon上注册的所有鼠标动作监听器的数组。- 返回:
-
所有在这个
TrayIcon上注册的MouseInputListeners或一个空数组(如果当前没有注册鼠标监听器) - 参见:
-
getActionCommand
返回此托盘图标触发的操作事件的命令名称。- 返回:
-
动作命令名称,如果不存在则为
null - 参见:
-
setActionCommand
设置由此托盘图标触发的动作事件的命令名称。默认情况下,此操作命令设置为null。- 参数:
command- 用于设置托盘图标操作命令的字符串。- 参见:
-
addActionListener
添加指定的动作监听器以从这个TrayIcon接收ActionEvents。操作事件通常发生在用户使用鼠标或键盘选择托盘图标时。生成动作事件的条件是平台相关的。使用
null值调用此方法无效。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 动作监听器- 参见:
-
removeActionListener
移除指定的动作监听器。使用null或无效值调用此方法无效。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
listener- 动作监听器- 参见:
-
getActionListeners
返回在此TrayIcon上注册的所有动作监听器的数组。- 返回:
-
所有在这个
TrayIcon上注册的ActionListeners或一个空数组(如果当前没有注册任何动作监听器) - 参见:
-
displayMessage
在托盘图标附近显示一条弹出消息。该消息将在一段时间后消失,或者如果用户单击它。单击消息可能会触发ActionEvent。标题或文本可能是
null,但如果两者都是null则抛出NullPointerException。显示时,标题或文本字符串在某些平台上可能会被截断;可以显示的字符数取决于平台。Note: 某些平台可能不支持显示消息。
- 参数:
caption- 显示在文本上方的标题,通常为粗体;可能是nulltext- 为特定消息显示的文本;可能是nullmessageType- 指示消息类型的枚举- 抛出:
NullPointerException- 如果caption和text都是null
-
getSize
返回托盘图标在系统托盘中占用的空间大小(以像素为单位)。对于尚未添加到系统托盘的托盘图标,返回的大小等于SystemTray.getTrayIconSize()的结果。- 返回:
- 托盘图标的大小,以像素为单位
- 参见:
-