Module java.desktop
Package java.awt

Class Taskbar

java.lang.Object
java.awt.Taskbar

public class Taskbar extends Object
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
  • Method Details

    • isSupported

      public boolean isSupported(Taskbar.Feature feature)
      测试当前平台是否支持Feature
      参数:
      feature - 指定的Taskbar.Feature
      返回:
      如果当前平台支持指定的功能,则返回true
    • getTaskbar

      public static Taskbar 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

      public void requestWindowUserAttention(Window w)
      请求用户关注指定的窗口。如果窗口表示不可在任务区域中显示,则没有效果。它是否可显示取决于窗口类型、平台和实现。
      参数:
      w - 窗口
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.USER_ATTENTION_WINDOW功能
    • setMenu

      public void setMenu(PopupMenu menu)
      将提供的PopupMenu的内容附加到任务区域中的应用程序图标。
      参数:
      menu - 要附加到此应用程序的PopupMenu
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.MENU功能
    • getMenu

      public PopupMenu getMenu()
      获取用于向系统任务区域中的应用程序图标添加项目的PopupMenu。
      返回:
      PopupMenu
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.MENU功能
    • setIconImage

      public void setIconImage(Image image)
      请求系统将此应用程序的图标更改为提供的image
      参数:
      image - 要更改的图像
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.ICON_IMAGE功能
    • getIconImage

      public Image getIconImage()
      获取此应用程序图标的图像。
      API 注意:
      返回的图标图像可能与通过setIconImage(java.awt.Image)设置的图像不相等,但应该在视觉上相似。
      返回:
      此应用程序图标的图像
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.ICON_IMAGE功能
    • setIconBadge

      public void setIconBadge(String badge)
      在此应用程序图标上附加一个小的系统提供的徽章。通常是一个数字。一些平台不支持字符串值,只接受整数值。在这种情况下,将整数表示为字符串作为参数传递。可以通过Feature.ICON_BADGE_TEXTFeature.ICON_BADGE_NUMBER进行测试。将null作为参数隐藏徽章。
      参数:
      badge - 要附加到图标的标签
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.ICON_BADGE_NUMBERTaskbar.Feature.ICON_BADGE_TEXT功能
    • setWindowIconBadge

      public void setWindowIconBadge(Window w, Image badge)
      在指定窗口的任务区域中的应用程序图标上附加一个小的徽章。系统设置可能会禁用它。如果窗口表示不可在任务区域中显示,则没有效果。它是否可显示取决于窗口类型、平台和实现。
      参数:
      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

      public void setWindowProgressValue(Window w, int value)
      在指定窗口的任务区域显示一个确定的进度条。如果窗口表示不可显示在任务区域,则不会产生任何效果。它是否可显示取决于窗口类型、平台和实现。
      视觉行为取决于平台和Taskbar.State
      此调用会取消窗口的INDETERMINATE状态。
      请注意,当多个窗口在任务区域中分组时,行为是特定于平台的。
      参数:
      w - 要更新的窗口
      value - 从0到100,其他值将切换到Taskbar.State.OFF状态并禁用进度指示
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.PROGRESS_VALUE_WINDOW功能
      参见:
    • setWindowProgressState

      public void setWindowProgressState(Window w, Taskbar.State state)
      为指定窗口设置进度状态。如果窗口表示不可显示在任务区域,则不会产生任何效果。它是否可显示取决于窗口类型、平台和实现。
      每个状态以平台相关的方式显示进度。
      请注意,从INDETERMINATE状态切换到任何确定状态可能会重置由setWindowProgressValue设置的值。
      参数:
      w - 窗口
      state - 要更改为的状态
      抛出:
      SecurityException - 如果存在安全管理器并且拒绝RuntimePermission("canProcessApplicationEvents")权限。
      UnsupportedOperationException - 如果当前平台不支持Taskbar.Feature.PROGRESS_STATE_WINDOW功能
      参见: