📄 systray.java
字号:
package openicq.gui;import openicq.Start;import org.javalib.util.TitledList;import snoozesoft.systray4j.*;/** * The <code>SysTray</code> class creates the system tray of this application. * @author Hansgeorg Schwibbe * @copyright 2004 */public class SysTray{ private static SysTrayMenu trayMenu; private static SysTrayMenuIcon primaryIcon; private static SysTrayMenuIcon overlayIcon; private static SysTrayMenuItem trayItemMaximize; private static SysTrayMenuItem trayItemExit; private static SysTrayAction sysTrayAction; /** * Constructs a new system tray containing a tray menu. * @param iconPath the path to the icon of the system tray * @param toolTip the tool tip of the system tray * @param action the interface of the system tray */ public static void createSystemTray(String iconPath, String toolTip, final SysTrayAction action) { synchronized (Start.env) { TitledList localized = Start.env.getLocalizedList(); if (System.getProperty("os.name").startsWith("Win")) { sysTrayAction = action; primaryIcon = new SysTrayMenuIcon(iconPath); primaryIcon.addSysTrayMenuListener(new SysTrayMenuListener() { public void iconLeftClicked(SysTrayMenuEvent e) { } public void iconLeftDoubleClicked(SysTrayMenuEvent e) { sysTrayAction.action_maximizeWindow(); } public void menuItemSelected(SysTrayMenuEvent e) { } }); if (trayMenu != null) { trayMenu.setIcon(primaryIcon); trayItemExit.setLabel(((String[]) localized.get("systemTray"))[0]); trayItemMaximize.setLabel(((String[]) localized.get("systemTray"))[1]); } else { String text; trayMenu = new SysTrayMenu(primaryIcon); text = ((String[]) localized.get("systemTray"))[0]; trayItemExit = new SysTrayMenuItem(text); trayItemExit.addSysTrayMenuListener(new SysTrayMenuListener() { public void iconLeftClicked(SysTrayMenuEvent e) { } public void iconLeftDoubleClicked(SysTrayMenuEvent e) { } public void menuItemSelected(SysTrayMenuEvent e) { sysTrayAction.action_closeWindow(); } }); text = ((String[]) localized.get("systemTray"))[1]; trayItemMaximize = new SysTrayMenuItem(text); trayItemMaximize.addSysTrayMenuListener(new SysTrayMenuListener() { public void iconLeftClicked(SysTrayMenuEvent e) { } public void iconLeftDoubleClicked(SysTrayMenuEvent e) { } public void menuItemSelected(SysTrayMenuEvent e) { sysTrayAction.action_maximizeWindow(); } }); trayMenu.addItem(trayItemExit); trayMenu.addSeparator(); trayMenu.addItem(trayItemMaximize); } trayMenu.setToolTip(toolTip); } } } /** * Removes the overlaying icon from the system tray. */ public static void removeOverlayIcon() { if (trayMenu != null) { if (overlayIcon != null) { trayMenu.setIcon(primaryIcon); } overlayIcon = null; } } /** * Sets an overlaying icon to the system tray. * @param iconPath the path to the overlaying icon */ public static void setOverlayIcon(final String iconPath) { if (trayMenu != null) { overlayIcon = new SysTrayMenuIcon(iconPath); overlayIcon.addSysTrayMenuListener(new SysTrayMenuListener() { public void iconLeftClicked(SysTrayMenuEvent e) { } public void iconLeftDoubleClicked(SysTrayMenuEvent e) { sysTrayAction.action_maximizeWindow(); } public void menuItemSelected(SysTrayMenuEvent e) { } }); trayMenu.setIcon(overlayIcon); } } /** * Sets a new icon to this system tray. * @param iconPath the path to the new icon */ public static synchronized void setPrimaryIcon(String iconPath) { if (trayMenu != null) { primaryIcon = new SysTrayMenuIcon(iconPath); primaryIcon.addSysTrayMenuListener(new SysTrayMenuListener() { public void iconLeftClicked(SysTrayMenuEvent e) { } public void iconLeftDoubleClicked(SysTrayMenuEvent e) { sysTrayAction.action_maximizeWindow(); } public void menuItemSelected(SysTrayMenuEvent e) { } }); if (overlayIcon == null) { trayMenu.setIcon(primaryIcon); } } } /** * Returns whether the system tray has already a tray menu. * @return true if the system tray has already a tray menu */ public static boolean hasSysTrayMenu() { if (trayMenu != null) { return true; } return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -