Java 类java.awt.SystemTray 实例源码

项目:litiengine    文件:Program.java   
private static void initSystemTray() {
  // add system tray icon with popup menu
  if (SystemTray.isSupported()) {
    SystemTray tray = SystemTray.getSystemTray();
    PopupMenu menu = new PopupMenu();
    MenuItem exitItem = new MenuItem(Resources.get("menu_exit"));
    exitItem.addActionListener(a -> Game.terminate());
    menu.add(exitItem);

    trayIcon = new TrayIcon(RenderEngine.getImage("pixel-icon-utility.png"), Game.getInfo().toString(), menu);
    trayIcon.setImageAutoSize(true);
    try {
      tray.add(trayIcon);
    } catch (AWTException e) {
      log.log(Level.SEVERE, e.getLocalizedMessage(), e);
    }
  }
}
项目:dracoon-dropzone    文件:Dropzone.java   
/**
 * Init Swing UI
 */
private void initUI() {
    URL url = null;
    if (ConfigIO.getInstance().isUseDarkIcon()) {
        url = Dropzone.class.getResource("/images/sds_logo_dark.png");
    } else {
        url = Dropzone.class.getResource("/images/sds_logo_light.png");

    }
    if (Util.getOSType() == OSType.MACOS) {

    }

    trayIcon = new TrayIcon(Toolkit.getDefaultToolkit().getImage(url), I18n.get("tray.appname"),
            new TrayPopupMenu());
    trayIcon.setImageAutoSize(true);

    final SystemTray tray = SystemTray.getSystemTray();
    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        LOG.error("TrayIcon could not be added.");
        System.exit(1);
    }
}
项目:dracoon-dropzone    文件:Dropzone.java   
public static void main(String[] args) {
    Util.setNativeLookAndFeel();

    SwingUtilities.invokeLater(new Runnable() {

        public void run() {
            // Check the SystemTray is supported
            if (!SystemTray.isSupported()) {
                System.out.println("SystemTray is not supported");
                System.exit(0);
            } else {
                new Dropzone();
            }
        }
    });
}
项目:owa-notifier    文件:SystemDesktopProxy.java   
@Override
protected void processEvent(InboxChangeEvent event) throws IOException {
    // TODO Auto-generated method stub
    if (SystemTray.isSupported()) {
        if(event.getUnreadItemCount() > 0) {
            trayIcon.setImage(this.imageNewMail);
        } else {
            trayIcon.setImage(this.imageNoMail);
        }

        if(OwaNotifier.getInstance().getProps().getProperty("notification.type").contentEquals("system")) {
            trayIcon.displayMessage(event.getEventTitle(), event.getEventText(), MessageType.INFO);
        }
    } else {
        logger.error("System tray not supported!");
    }
    if(event.getUnreadItemCount() > 0) {
        this.setToolTip(event.getUnreadItemCount() + " message(s) non lu");
    } else {
        this.setToolTip("Pas de message non lu");
    }
}
项目:Clipcon-Client    文件:TrayIconManager.java   
/** Add tray icon to system tray */
public void addTrayIconInSystemTray() {
    if (SystemTray.isSupported()) {
        setEventListener();
        setMenu();

        try {
            trayIcon.setImageAutoSize(true);
            trayIcon.addActionListener(showListener);
            trayIcon.addMouseListener(mouseListener);
            systemTray.add(trayIcon);
        } catch (AWTException e) {
            e.printStackTrace();
        }

    } else {
        System.err.println("Tray unavailable");
    }
}
项目:openjdk-jdk10    文件:ActionEventTest.java   
public static void main(String[] args) throws Exception {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray not supported on the platform." +
            " Marking the test passed.");
    } else {
        if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
            System.err.println(
                "Test can fail on Windows platform\n"+
                "On Windows 7, by default icon hides behind icon pool\n" +
                "Due to which test might fail\n" +
                "Set \"Right mouse click\" -> " +
                "\"Customize notification icons\" -> \"Always show " +
                "all icons and notifications on the taskbar\" true " +
                "to avoid this problem.\nOR change behavior only for " +
                "Java SE tray icon and rerun test.");
        }

        ActionEventTest test = new ActionEventTest();
        test.doTest();
        test.clear();
    }
}
项目:openjdk-jdk10    文件:ActionEventTest.java   
private void initializeGUI() {

        icon = new TrayIcon(
            new BufferedImage(20, 20, BufferedImage.TYPE_INT_RGB), "ti");
        icon.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformed = true;
                int md = ae.getModifiers();
                int expectedMask = ActionEvent.ALT_MASK | ActionEvent.CTRL_MASK
                        | ActionEvent.SHIFT_MASK;

                if ((md & expectedMask) != expectedMask) {
                    clear();
                    throw new RuntimeException("Action Event modifiers are not"
                        + " set correctly.");
                }
            }
        });

        try {
            SystemTray.getSystemTray().add(icon);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
项目:openjdk-jdk10    文件:TrayIconMouseTest.java   
public static void main(String[] args) throws Exception {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray not supported on the platform "
                + "under test. Marking the test passed");
    } else {
        String osName = System.getProperty("os.name").toLowerCase();
        if (osName.startsWith("mac")) {
            isMacOS = true;
        } else if (osName.startsWith("win")) {
            isWinOS = true;
        } else {
            isOelOS = SystemTrayIconHelper.isOel7();
        }
        new TrayIconMouseTest().doTest();
    }
}
项目:openjdk9    文件:ActionEventTest.java   
public static void main(String[] args) throws Exception {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray not supported on the platform." +
            " Marking the test passed.");
    } else {
        if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
            System.err.println(
                "Test can fail on Windows platform\n"+
                "On Windows 7, by default icon hides behind icon pool\n" +
                "Due to which test might fail\n" +
                "Set \"Right mouse click\" -> " +
                "\"Customize notification icons\" -> \"Always show " +
                "all icons and notifications on the taskbar\" true " +
                "to avoid this problem.\nOR change behavior only for " +
                "Java SE tray icon and rerun test.");
        }

        ActionEventTest test = new ActionEventTest();
        test.doTest();
        test.clear();
    }
}
项目:openjdk9    文件:ActionEventTest.java   
private void initializeGUI() {

        icon = new TrayIcon(
            new BufferedImage(20, 20, BufferedImage.TYPE_INT_RGB), "ti");
        icon.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                actionPerformed = true;
                int md = ae.getModifiers();
                int expectedMask = ActionEvent.ALT_MASK | ActionEvent.CTRL_MASK
                        | ActionEvent.SHIFT_MASK;

                if ((md & expectedMask) != expectedMask) {
                    clear();
                    throw new RuntimeException("Action Event modifiers are not"
                        + " set correctly.");
                }
            }
        });

        try {
            SystemTray.getSystemTray().add(icon);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
项目:openjdk9    文件:TrayIconMouseTest.java   
public static void main(String[] args) throws Exception {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray not supported on the platform "
                + "under test. Marking the test passed");
    } else {
        String osName = System.getProperty("os.name").toLowerCase();
        if (osName.startsWith("mac")) {
            isMacOS = true;
        } else if (osName.startsWith("win")) {
            isWinOS = true;
        } else {
            isOelOS = SystemTrayIconHelper.isOel7();
        }
        new TrayIconMouseTest().doTest();
    }
}
项目:yajsw    文件:HelloWorld.java   
private static void startTray()
{
    SystemTray tray = SystemTray.getSystemTray();
    int w = 80;
    int[] pix = new int[w * w];
    for (int i = 0; i < w * w; i++)
        pix[i] = (int) (Math.random() * 255);
    ImageProducer producer = new MemoryImageSource(w, w, pix, 0, w);
    Image image = Toolkit.getDefaultToolkit().createImage(producer);
    TrayIcon trayIcon = new TrayIcon(image);
    trayIcon.setImageAutoSize(true);
    startWindow();
    try
    {
        tray.add(trayIcon);
        System.out.println("installed tray");
    }
    catch (AWTException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
项目:screenstudio    文件:ScreenStudio.java   
private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
    if (trayIcon != null) {
        SystemTray.getSystemTray().remove(trayIcon);
    }
    if (mCurrentAudioMonitor != null) {
        mCurrentAudioMonitor.stopMonitoring();
        mCurrentAudioMonitor = null;
    }
    if (mRemote != null) {
        mRemote.shutdown();
        mRemote = null;
    }
    if (mShortcuts != null) {
        mShortcuts.stop();
    }
}
项目:timetray    文件:TimeTray.java   
/**
 * TimeTray Constructor
 */
public TimeTray() {
    // retrieve iconSize of SystemTray
    SystemTray systemTray = SystemTray.getSystemTray();
    iconSize = systemTray.getTrayIconSize();

    // set presets
    presets = new Presets(iconSize.height);

    calendar = Calendar.getInstance();

    // create TrayIcon according to iconSize
    trayIcon = new TrayIcon(getTrayImage(), "TimeTray", menu);
    try {
        systemTray.add(trayIcon);
    } catch (AWTException ex) {
        ex.printStackTrace();
    }

    // run thread and set timer tooltip to update every second
    run();

    Timer timer = new Timer();
    timer.schedule(this, 1000, 1000);
}
项目:Dannmaku-hime    文件:Tray.java   
public Tray(MainWindow window) {
    if (tray != null)
        return;
    if (!SystemTray.isSupported()) {
        System.err.println("系统不支持托盘!");
    }
    if (tray == null) {
        tray = SystemTray.getSystemTray();
    }
    if (window == null)
        throw new NullPointerException();
    this.window = window;

    try {
        setTray();
    } catch (Exception e) {
        e.printStackTrace();
    }
    addIcon();
    // window.setVisible(false);
}
项目:AppWoksUtils    文件:AWTrayIcon.java   
/**
 * @param frame2
 * @param icon
 * @param title
 * @throws AWTException
 */
public AWTrayIcon(final JFrame frame, final Image icon, final String title) throws AWTException {
    this.frame = frame;
    eventSender = new BasicEventSender<AWTrayIcon>();
    final SystemTray systemTray = SystemTray.getSystemTray();
    /*
     * trayicon message must be set, else windows cannot handle icon right
     * (eg autohide feature)
     */
    trayIcon = new ExtTrayIcon(icon, title);

    trayIcon.addMouseListener(this);
    trayIcon.addTrayMouseListener(this);

    systemTray.add(trayIcon);
}
项目:deskshare-public    文件:SmallUI.java   
private void initTray() {
    final SystemTray systemTray = SystemTray.getSystemTray();
    final TrayIcon trayIcon = new TrayIcon(getImage("icon.gif"), "Deskshare is running");
    trayIcon.setImageAutoSize(true); // Autosize icon base on space
                                     // available on tray
    MouseAdapter mouseAdapter = new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent evt) {
            // This will display small popup message from System Tray
            trayIcon.displayMessage("BigMarker Deskshare", "This is an info message", TrayIcon.MessageType.INFO);
            if (!app.isVisible()) {
                app.setVisible(true);
            }
        }
    };
    trayIcon.addMouseListener(mouseAdapter);
    try {
        systemTray.add(trayIcon);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:deskshare-public    文件:DebugUI.java   
private void initTray() {
    final SystemTray systemTray = SystemTray.getSystemTray();
    final TrayIcon trayIcon = new TrayIcon(getImage("icon.gif"), "Deskshare is running");
    trayIcon.setImageAutoSize(true); // Autosize icon base on space available on tray
    MouseAdapter mouseAdapter = new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent evt) {
            System.out.println("icon clicked: " + evt.getClickCount());
            // This will display small popup message from System Tray
            trayIcon.displayMessage("BigMarker Deskshare", "This is an info message", TrayIcon.MessageType.INFO);
            if (!app.isVisible()) {
                app.setVisible(true);
            }
        }
    };
    trayIcon.addMouseListener(mouseAdapter);
    try {
        systemTray.add(trayIcon);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:WhoWhatWhere    文件:GUIController.java   
public void setXBtnBehavior(boolean minimize)
{
    if (!minimize)
        stage.setOnCloseRequest(we -> exitRequestedByUser());
    else
        if (!SystemTray.isSupported())
            logger.log(Level.WARNING, "Minimize to tray is not supported.");
        else
        {
            stage.setOnCloseRequest(we ->
            {
                we.consume(); //ignore the application's title window exit button, instead minimize to systray
                minimizeRequestCameFromXBtn = true;
                performMinimizeToTray.run();
            });
        }

    menuItemChkDisplayBalloon.setDisable(!minimize);
}
项目:MIDI-Automator    文件:Tray.java   
/**
 * Initializes the tray
 */
public void init() {

    if (SystemTray.isSupported()) {

        SystemTray tray = SystemTray.getSystemTray();

        if (tray.getTrayIcons().length == 0) {

            String iconFileName = resources.getImagePath() + File.separator
                    + "MidiAutomatorIcon16.png";
            image = Toolkit.getDefaultToolkit().getImage(iconFileName);
            trayPopupMenu.init();
            trayIcon = new TrayIcon(image, NAME);
            trayIcon.addMouseListener(trayMouseListener);

            try {
                tray.add(trayIcon);
            } catch (AWTException e) {
                log.error("Error on adding tray icon.", e);
            }
        }
    }
}
项目:TodoLazyList    文件:Tray.java   
private void hookTray() {
    if (!SystemTray.isSupported()) {
        System.out.println("SystemTray is not supported");
    } else {
        try {
            Todo.icon = new TrayIcon(ImageIO.read(Todo.class.getResourceAsStream("/todo/res/logoTray.png")), "TODO application",
                    createPopupMenu());
            Todo.icon.addActionListener((ActionEvent e) -> {
                Platform.runLater(() -> {
                    stage.setIconified(false);
                });
                //some popup test
            });
            SystemTray.getSystemTray().add(Todo.icon);
            //Thread.sleep(3000);
            Todo.icon.displayMessage("TODO", "Listener enabled",
                    TrayIcon.MessageType.INFO);

        } catch (AWTException | IOException ex) {
            ex.printStackTrace();
        }

    }
}
项目:taskerbox    文件:TaskerboxTrayUtils.java   
/**
 * Displays a message at the system tray
 *
 * @param caption
 * @param text
 * @param messageType
 * @param listener
 */
public static void displayMessage(String caption, String text, MessageType messageType,
    ActionListener listener) {

  log.info(messageType + ": " + text);

  if (SystemTray.isSupported()) {

    removeAllListeners();
    if (listener != null) {
      getTrayIcon().addActionListener(listener);
    }

    getTrayIcon().displayMessage(caption, text, messageType);
  }
}
项目:neembuu-uploader    文件:QueueManager.java   
/**
 * Start next upload if any.. Decrements the current uploads averageProgress and
 * updates the queuing mechanism.
 */
public void startNextUploadIfAny() {
    currentlyUploading--;
    //If no more uploads in queue and no more uploads currently running, reset the title
    if (getQueuedUploadCount() == 0 && currentlyUploading == 0){
        setFrameTitle();

        try{
            //If the tray icon is activated, then display message
            if(SystemTray.getSystemTray().getTrayIcons().length > 0) {
                SystemTray.getSystemTray().getTrayIcons()[0].displayMessage(Translation.T().neembuuuploader(), Translation.T().allUploadsCompleted(), TrayIcon.MessageType.INFO);
            }
        }catch(UnsupportedOperationException a){
            //ignore
        }
    } else {
        updateQueue();
    }
}
项目:neembuu-uploader    文件:NeembuuUploader.java   
private void setUpTrayIcon() {
    if (SystemTray.isSupported()) {
        //trayIcon.setImageAutoSize(true); It renders the icon very poorly.
        //So we render the icon ourselves with smooth settings.
        {
            Dimension d = SystemTray.getSystemTray().getTrayIconSize();
            trayIcon = new TrayIcon(getIconImage().getScaledInstance(d.width, d.height, Image.SCALE_SMOOTH));
        }
        //trayIcon = new TrayIcon(getIconImage());
        //trayIcon.setImageAutoSize(true);
        trayIcon.setToolTip(Translation.T().trayIconToolTip());
        trayIcon.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                NULogger.getLogger().info("System tray double clicked");

                setExtendedState(JFrame.NORMAL);
                setVisible(true);
                repaint();
                SystemTray.getSystemTray().remove(trayIcon);
            }
        });
    }
}
项目:hql-builder    文件:HqlBuilderFrame.java   
private void switchVisibility() {
    if (!SystemTray.isSupported()) {
        return;
    }
    if (!Boolean.TRUE.equals(this.systrayAction.getValue())) {
        return;
    }
    boolean v = !this.frame.isVisible();
    this.frame.setVisible(v);
    if (v) {
        this.frame.toFront();
        this.frame.setState(Frame.NORMAL);
    }
    if (!v) {
        try {
            SystemTray.getSystemTray().add(this.trayIcon);
        } catch (AWTException ex) {
            HqlBuilderFrame.logger.error("{}", ex);
        }
    } else {
        SystemTray.getSystemTray().remove(this.trayIcon);
    }
}
项目:Sources-Jeu    文件:IconeTaches.java   
private IconeTaches() {
    super(Images.get("divers/icone.png", true), TITRE);
    setImageAutoSize(true);
    setPopupMenu(menu = new PopupMenu("Menu"));
    menu.add(quitter = new MenuItem("Quitter"));
    menu.add(infos = new MenuItem("A propos..."));
    menu.add(admin = new MenuItem("Administrer"));
    menu.addSeparator();
    menu.add(d3d = new MenuItem("Dessin 3D"));
    menu.add(d2d = new MenuItem("Dessin 2D"));
    quitter.addActionListener(this);
    infos.addActionListener(this);
    admin.addActionListener(this);
    d3d.addActionListener(this);
    d2d.addActionListener(this);
    if(SystemTray.isSupported()) try {
        SystemTray.getSystemTray().add(this);
    } catch(AWTException e) {
        e.printStackTrace();
    }
}
项目:FutureSonic-Server    文件:SubsonicController.java   
private void createComponents() {
    PopupMenu menu = new PopupMenu();
    menu.add(createMenuItem(openAction));
    menu.add(createMenuItem(controlPanelAction));
    menu.addSeparator();
    menu.add(createMenuItem(quitAction));

    URL url = getClass().getResource("/images/futuresonic-21.png");
    Image image = Toolkit.getDefaultToolkit().createImage(url);
    TrayIcon trayIcon = new TrayIcon(image, "FutureSonic Music Streamer", menu);
    trayIcon.setImageAutoSize(false);

    try {
        SystemTray.getSystemTray().add(trayIcon);
    } catch (Throwable x) {
        System.err.println("Failed to add tray icon.");
    }
}
项目:WollMux    文件:WollMuxBarTrayIcon.java   
/**
 * Fügt dieses WollMuxBarTrayIcon zur SystemTray hinzu (sofern die SystemTray auf
 * dem aktuellen System supportet ist).
 * 
 * @throws UnavailableException
 *           wenn die SystemTray nicht verfügbar ist.
 * 
 * @author Daniel Benkmann (D-III-ITD-D101)
 */
public void addToTray() throws UnavailableException
{
  if (!SystemTray.isSupported())
  {
    throw new UnavailableException(L.m("System Tray ist nicht verfügbar!"));
  }
  SystemTray tray = SystemTray.getSystemTray();
  try
  {
    tray.add(icon);
  }
  catch (AWTException e)
  {
    throw new UnavailableException(L.m("System Tray ist nicht verfügbar!"), e);
  }
}
项目:madsonic-server-5.1    文件:MadsonicController.java   
private void createComponents() {
    PopupMenu menu = new PopupMenu();
    menu.add(createMenuItem(openAction));
    menu.add(createMenuItem(controlPanelAction));
    menu.addSeparator();
    menu.add(createMenuItem(quitAction));

    URL url = getClass().getResource("/images/madsonic-21.png");
    Image image = Toolkit.getDefaultToolkit().createImage(url);
    TrayIcon trayIcon = new TrayIcon(image, "Madsonic Music Streamer", menu);
    trayIcon.setImageAutoSize(false);

    try {
        SystemTray.getSystemTray().add(trayIcon);
    } catch (Throwable x) {
        System.err.println("Failed to add tray icon.");
    }
}
项目:madsonic-server-5.0    文件:SubsonicController.java   
private void createComponents() {
    PopupMenu menu = new PopupMenu();
    menu.add(createMenuItem(openAction));
    menu.add(createMenuItem(controlPanelAction));
    menu.addSeparator();
    menu.add(createMenuItem(quitAction));

    URL url = getClass().getResource("/images/madsonic-21.png");
    Image image = Toolkit.getDefaultToolkit().createImage(url);
    TrayIcon trayIcon = new TrayIcon(image, "Madsonic Music Streamer", menu);
    trayIcon.setImageAutoSize(false);

    try {
        SystemTray.getSystemTray().add(trayIcon);
    } catch (Throwable x) {
        System.err.println("Failed to add tray icon.");
    }
}
项目:sheepit-client    文件:GuiSwing.java   
public void hideToTray() {
    if (sysTray == null || SystemTray.isSupported() == false) {
        System.out.println("GuiSwing::hideToTray SystemTray not supported!");
        return;
    }

    try {
        trayIcon = getTrayIcon();
        sysTray.add(trayIcon);
    }
    catch (AWTException e) {
        System.out.println("GuiSwing::hideToTray an error occured while trying to add system tray icon (exception: " + e + ")");
        return;
    }

    setVisible(false);

}
项目:desktopclient-java    文件:TrayManager.java   
void setTray() {
    if (!Config.getInstance().getBoolean(Config.MAIN_TRAY)) {
        this.removeTray();
        return;
    }

    if (!SystemTray.isSupported()) {
        LOGGER.info("tray icon not supported");
        return;
    }

    if (mTrayIcon == null)
        mTrayIcon = this.createTrayIcon();

    SystemTray tray = SystemTray.getSystemTray();
    if (tray.getTrayIcons().length > 0)
        return;

    try {
        tray.add(mTrayIcon);
    } catch (AWTException ex) {
        LOGGER.log(Level.WARNING, "can't add tray icon", ex);
    }
}
项目:lector-rvsp    文件:LectorWindow.java   
private void setUpSysTray() {
    if(!SystemTray.isSupported()) {
        JOptionPane.showMessageDialog(this,
            "Your OS doesn't support sytem tray.\n" +
            "Lector will execute without a tray icon.",
            Lector.APP_NAME,
            JOptionPane.WARNING_MESSAGE);
        return;
    }

    SystemTray tray = SystemTray.getSystemTray();

    LectorTrayIcon trayIcon = new LectorTrayIcon();
    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        e.printStackTrace();
    }
}
项目:MonitorBrightness    文件:App.java   
@Override
public void close() throws Exception
{
    try
    {
        if (thread != null)
        {
            logger.info("Waiting for thread to terminate");
            thread.join();
        }
    }
    catch (InterruptedException e)
    {
        logger.warn("Thread interrupted", e);
        Thread.currentThread().interrupt();
    }

    luminanceProvider.close();

    SystemTray.getSystemTray().remove(trayIcon);
    logger.info("Finished");
}
项目:p300    文件:GuruztrayManagerImplementation.java   
public GuruztrayManagerImplementation () throws Exception {
       // workaround to disable system tray in Gnome 3
       //
       // see following comment for an explanation
       // https://bugzilla.redhat.com/show_bug.cgi?id=683768#c4
       //
       // bugreport on Oracle
       // JDK 7 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=2217240
       // JDK 8 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7103610
       //
       // even using JDK 1.8.0_25-b17 the system tray doesn't work
       // on Gnome 3.8+8 using the example code from Oracle
       // http://docs.oracle.com/javase/tutorial/uiswing/misc/systemtray.html
       if ("gnome".equals(System.getenv("XDG_SESSION_DESKTOP"))) {
           throw new Exception("System tray support has been disabled for Gnome desktop environment");
       }
    if (!isSupported())
        throw new Exception ("Tray not supported");

    tray = SystemTray.getSystemTray();

    Dimension d = tray.getTrayIconSize();
    //System.out.println ("System Tray icon width=" + d.width + " height=" + d.height);

}
项目:JVShot    文件:Main.java   
private static void createAndShowGui() {
    JDialog dialog = createDialog();

    CloseDialogListener closeDialogListener = new CloseDialogListener(dialog);
    dialog.addWindowFocusListener(closeDialogListener);

    JPopupMenu systemTrayPopupMenu = buildMenu();
    systemTrayPopupMenu.addPopupMenuListener(closeDialogListener);

    TrayIcon trayIcon = new TrayIcon(getTrayIconImage());
    trayIcon.addMouseListener(new ShowTrayMenuListener(systemTrayPopupMenu, dialog));

    try {
        SystemTray.getSystemTray().add(trayIcon);
    } catch (AWTException e) {
        throw new IllegalStateException("Failed to add tray icon");
    }

}
项目:oceano    文件:SysTrayIcon.java   
public SysTrayIcon(JDesktopAgent frame, String tooltip) {
    Translate translate = Translate.getTranslate();
    if (SystemTray.isSupported()) {
        Image image = Toolkit.getDefaultToolkit().getImage("icon.png");

        PopupMenu popup = new PopupMenu();
        popup.add(new RestoreMenuItem(frame, translate.backgroundRestore()));
        popup.addSeparator();
        popup.add(new AboutMenuItem(translate.about()));
        popup.addSeparator();
        popup.add(new ExitMenuItem(translate.exit()));

        TrayIcon trayIcon = new TrayIcon(image, tooltip, popup);
        trayIcon.setImageAutoSize(true);
        trayIcon.addMouseListener(new IconListener(frame));

        try {
            SystemTray.getSystemTray().add(trayIcon);
        } catch (AWTException e) {
            new SysTrayForm(frame).setVisible(true);
        }
    } else {
        new SysTrayForm(frame).setVisible(true);
    }

}
项目:UploadR    文件:MenuTrayIcon.java   
public static boolean create()
{
    menu = new Menu();
    try
    {
        icon = new TrayIcon(Constants.TRAY_ICON, "UploadR", menu);
        icon.addMouseListener(menu.getItemHandler());
        SystemTray.getSystemTray().add(icon);
        icon.setToolTip("UploadR");
        return true;
    }
    catch(AWTException e)
    {
        return false;
    }
}
项目:madsonic-server-5.0    文件:SubsonicController.java   
private void createComponents() {
    PopupMenu menu = new PopupMenu();
    menu.add(createMenuItem(openAction));
    menu.add(createMenuItem(controlPanelAction));
    menu.addSeparator();
    menu.add(createMenuItem(quitAction));

    URL url = getClass().getResource("/images/madsonic-21.png");
    Image image = Toolkit.getDefaultToolkit().createImage(url);
    TrayIcon trayIcon = new TrayIcon(image, "Madsonic Music Streamer", menu);
    trayIcon.setImageAutoSize(false);

    try {
        SystemTray.getSystemTray().add(trayIcon);
    } catch (Throwable x) {
        System.err.println("Failed to add tray icon.");
    }
}
项目:rapfx    文件:JfxTrayIcon.java   
public JfxTrayIcon() {
    if (!SystemTray.isSupported()) {
        log.warn("system tray not supported!");
        this.tray = null;
    } else {
        this.tray = SystemTray.getSystemTray();
        this.menu = new PopupMenu();
        this.exit = new MenuItem("Exit");
        this.menu.add(exit);
        this.exit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                hide(); // important, otherwise AWT keeps application alive!
                Platform.exit();
            }
        });
    }
}