【问题标题】:how to open and application from system tray?如何从系统托盘打开和应用程序?
【发布时间】:2014-04-17 09:06:43
【问题描述】:

如何通过关闭按钮在系统托盘中发送java应用程序并通过单击系统托盘图标恢复?。

我曾尝试关注隐藏,但现在我如何通过点击系统托盘将其取回?

 getFrmTaskList().setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

怎么可能有人给我适当的建议已经通过在搜索框中搜索尝试了所有其他方式

【问题讨论】:

  • 如果 JFrame 被定义为局部变量,例如myFrame.setVisible(true) for myFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
  • 是的,我已经这样做了,但是现在我如何通过单击系统托盘来显示它?
  • 遵循Oracle官方教程中的代码示例

标签: java swing system-tray


【解决方案1】:
    This is example code you can create appropriate listener and make it working
    //Check the SystemTray is supported
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray is not supported");
        return;
    }
    final PopupMenu popup = new PopupMenu();
    final TrayIcon trayIcon =
            new TrayIcon(createImage("images/bulb.gif", "tray icon"));
    final SystemTray tray = SystemTray.getSystemTray();

    // Create a pop-up menu components
    MenuItem aboutItem = new MenuItem("About");
    CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size");
    CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip");
    Menu displayMenu = new Menu("Display");
    MenuItem errorItem = new MenuItem("Error");
    MenuItem warningItem = new MenuItem("Warning");
    MenuItem infoItem = new MenuItem("Info");
    MenuItem noneItem = new MenuItem("None");
    MenuItem exitItem = new MenuItem("Exit");

    //Add components to pop-up menu
    popup.add(aboutItem);
    popup.addSeparator();
    popup.add(cb1);
    popup.add(cb2);
    popup.addSeparator();
    popup.add(displayMenu);
    displayMenu.add(errorItem);
    displayMenu.add(warningItem);
    displayMenu.add(infoItem);
    displayMenu.add(noneItem);
    popup.add(exitItem);

    trayIcon.setPopupMenu(popup);

    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        System.out.println("TrayIcon could not be added.");
    }

【讨论】:

  • 这如何在系统托盘中发送我的应用程序以及如何通过单击系统托盘图标打开应用程序?
最近更新 更多