java.lang.Object
java.awt.Taskbar
Taskbar
类允许Java应用与系统任务区域(任务栏、Dock等)进行交互。
根据当前平台的不同,有各种交互方式,比如显示某个任务的进度、将用户指定的菜单附加到应用程序图标的上下文菜单中等。
- 实现注意事项:
-
目前Linux仅支持Unity。但是,为了使这些功能在Unity上正常工作,应用程序应该从一个带有指定的
java.desktop.appName
系统属性设置为此.desktop文件名的.desktop文件中运行:Exec=java -Djava.desktop.appName=MyApp.desktop -jar /path/to/myapp.jar
参见 https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles - 自JDK版本:
- 9
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
提供的功能列表。static enum
可用窗口进度状态的种类。 -
Method Summary
Modifier and TypeMethodDescription获取此应用程序图标的图像。getMenu()
获取用于向系统任务区域中的应用程序图标添加项目的PopupMenu。static Taskbar
返回当前任务栏上下文的Taskbar
实例。boolean
isSupported
(Taskbar.Feature feature) 测试当前平台是否支持Feature
。static boolean
测试当前平台是否支持此类。void
requestUserAttention
(boolean enabled, boolean critical) 请求用户关注此应用程序。void
请求用户关注指定的窗口。void
setIconBadge
(String badge) 在此应用程序图标上附加一个小的系统提供的徽章。void
setIconImage
(Image image) 请求系统将此应用程序图标更改为提供的image
。void
将提供的PopupMenu的内容附加到任务区域中的应用程序图标。void
setProgressValue
(int value) 在此应用程序图标上附加一个小的系统提供的进度条。void
setWindowIconBadge
(Window w, Image badge) 在指定窗口的任务区域中的应用程序图标上附加一个小的徽章。void
setWindowProgressState
(Window w, Taskbar.State state) 为指定窗口设置进度状态。void
setWindowProgressValue
(Window w, int value) 在指定窗口的任务区域中显示一个确定的进度条。
-
Method Details
-
isSupported
测试当前平台是否支持Feature
。- 参数:
-
feature
- 指定的Taskbar.Feature
- 返回:
- 如果当前平台支持指定的功能,则返回true
-
getTaskbar
返回当前任务栏上下文的Taskbar
实例。在某些平台上,Taskbar API可能不受支持;使用isTaskbarSupported()
方法来确定当前任务栏是否受支持。- 返回:
- Taskbar实例
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true
-
UnsupportedOperationException
- 如果当前平台不支持此类 - 参见:
-
isTaskbarSupported
public static boolean isTaskbarSupported()测试当前平台是否支持此类。如果支持,使用getTaskbar()
来检索一个实例。- 返回:
-
如果当前平台支持此类,则返回
true
;否则返回false
- 参见:
-
requestUserAttention
public void requestUserAttention(boolean enabled, boolean critical) 请求用户关注此应用程序。根据平台的不同,这可能通过任务区域中的图标弹跳或闪烁来进行视觉指示。对于已经处于活动状态的应用程序可能没有影响。在某些平台(例如Mac OS)上,此效果可能在应用程序激活时消失,并且无法通过将enabled
设置为false来解除。其他平台可能需要通过调用requestUserAttention(boolean, boolean)
来解除此请求,其中enabled
参数设置为false。- 参数:
-
enabled
- 如果为false,则禁用此请求 -
critical
- 如果这是一个重要请求 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.USER_ATTENTION
功能
-
requestWindowUserAttention
请求用户关注指定的窗口。如果窗口表示不可在任务区域中显示,则没有效果。它是否可显示取决于窗口类型、平台和实现。- 参数:
-
w
- 窗口 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.USER_ATTENTION_WINDOW
功能
-
setMenu
将提供的PopupMenu的内容附加到任务区域中的应用程序图标。- 参数:
-
menu
- 要附加到此应用程序的PopupMenu - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.MENU
功能
-
getMenu
获取用于向系统任务区域中的应用程序图标添加项目的PopupMenu。- 返回:
- PopupMenu
- 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.MENU
功能
-
setIconImage
请求系统将此应用程序的图标更改为提供的image
。- 参数:
-
image
- 要更改的图像 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.ICON_IMAGE
功能
-
getIconImage
获取此应用程序图标的图像。- API 注意:
-
返回的图标图像可能与通过
setIconImage(java.awt.Image)
设置的图像不相等,但应该在视觉上相似。 - 返回:
- 此应用程序图标的图像
- 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.ICON_IMAGE
功能
-
setIconBadge
在此应用程序图标上附加一个小的系统提供的徽章。通常是一个数字。一些平台不支持字符串值,只接受整数值。在这种情况下,将整数表示为字符串作为参数传递。可以通过Feature.ICON_BADGE_TEXT
和Feature.ICON_BADGE_NUMBER
进行测试。将null
作为参数隐藏徽章。- 参数:
-
badge
- 要附加到图标的标签 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.ICON_BADGE_NUMBER
或Taskbar.Feature.ICON_BADGE_TEXT
功能
-
setWindowIconBadge
在指定窗口的任务区域中的应用程序图标上附加一个小的徽章。系统设置可能会禁用它。如果窗口表示不可在任务区域中显示,则没有效果。它是否可显示取决于窗口类型、平台和实现。- 参数:
-
w
- 要更新的窗口 -
badge
- 要附加到图标的图像 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.ICON_BADGE_IMAGE_WINDOW
功能
-
setProgressValue
public void setProgressValue(int value) 将一个小的系统提供的进度条附加到此应用程序的图标上。- 参数:
-
value
- 从0到100,其他值将禁用进度指示 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.PROGRESS_VALUE
功能
-
setWindowProgressValue
在指定窗口的任务区域显示一个确定的进度条。如果窗口表示不可显示在任务区域,则不会产生任何效果。它是否可显示取决于窗口类型、平台和实现。
视觉行为取决于平台和Taskbar.State
。
此调用会取消窗口的INDETERMINATE
状态。
请注意,当多个窗口在任务区域中分组时,行为是特定于平台的。- 参数:
-
w
- 要更新的窗口 -
value
- 从0到100,其他值将切换到Taskbar.State.OFF
状态并禁用进度指示 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.PROGRESS_VALUE_WINDOW
功能 - 参见:
-
setWindowProgressState
为指定窗口设置进度状态。如果窗口表示不可显示在任务区域,则不会产生任何效果。它是否可显示取决于窗口类型、平台和实现。
每个状态以平台相关的方式显示进度。
请注意,从INDETERMINATE
状态切换到任何确定状态可能会重置由setWindowProgressValue
设置的值。- 参数:
-
w
- 窗口 -
state
- 要更改为的状态 - 抛出:
-
SecurityException
- 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")
权限。 -
UnsupportedOperationException
- 如果当前平台不支持Taskbar.Feature.PROGRESS_STATE_WINDOW
功能 - 参见:
-