全局:优化系统托盘菜单

This commit is contained in:
rememberber
2023-09-28 16:28:35 +08:00
parent c8a1883570
commit 6ccbdaa2a3
3 changed files with 43 additions and 31 deletions
@@ -28,8 +28,6 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Collections;
import java.util.Enumeration;
import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -291,29 +289,6 @@ public class Init {
JPopupMenuMouseAdapter jPopupMenuMouseAdapter = new JPopupMenuMouseAdapter(App.popupMenu);
App.trayIcon.addMouseListener(jPopupMenuMouseAdapter);
App.trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
switch (e.getButton()) {
case MouseEvent.BUTTON1: {
showMainFrame();
break;
}
case MouseEvent.BUTTON2: {
logger.debug("托盘图标中键事件");
break;
}
case MouseEvent.BUTTON3: {
logger.debug("托盘图标右键事件");
break;
}
default: {
break;
}
}
}
});
try {
App.tray.add(App.trayIcon);
} catch (AWTException e) {
@@ -1,5 +1,9 @@
package com.luoboduner.moo.tool.ui.component;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import com.luoboduner.moo.tool.App;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
@@ -7,6 +11,8 @@ import java.awt.event.MouseEvent;
public class JPopupMenuMouseAdapter extends MouseAdapter {
private static final Log logger = LogFactory.get();
private JPopupMenu popupMenu;
public JPopupMenuMouseAdapter(JPopupMenu popupMenu) {
@@ -23,6 +29,27 @@ public class JPopupMenuMouseAdapter extends MouseAdapter {
maybeShowPopup(e);
}
@Override
public void mouseClicked(MouseEvent e) {
switch (e.getButton()) {
case MouseEvent.BUTTON1: {
showMainFrame();
break;
}
case MouseEvent.BUTTON2: {
logger.debug("托盘图标中键事件");
break;
}
case MouseEvent.BUTTON3: {
logger.debug("托盘图标右键事件");
break;
}
default: {
break;
}
}
}
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
Dimension size = popupMenu.getPreferredSize();
@@ -31,4 +58,14 @@ public class JPopupMenuMouseAdapter extends MouseAdapter {
popupMenu.setVisible(true);
}
}
public static void showMainFrame() {
App.mainFrame.setVisible(true);
if (App.mainFrame.getExtendedState() == Frame.ICONIFIED) {
App.mainFrame.setExtendedState(Frame.NORMAL);
} else if (App.mainFrame.getExtendedState() == 7) {
App.mainFrame.setExtendedState(Frame.MAXIMIZED_BOTH);
}
App.mainFrame.requestFocus();
}
}
@@ -342,8 +342,8 @@ public class TopMenuBar extends JMenuBar {
FlatAnimatedLafChange.hideSnapshotWithAnimation();
JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
JOptionPane.INFORMATION_MESSAGE);
// JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
// JOptionPane.INFORMATION_MESSAGE);
initFontSizeMenu();
@@ -372,8 +372,8 @@ public class TopMenuBar extends JMenuBar {
FlatAnimatedLafChange.hideSnapshotWithAnimation();
JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
JOptionPane.INFORMATION_MESSAGE);
// JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
// JOptionPane.INFORMATION_MESSAGE);
initFontFamilyMenu();
@@ -390,8 +390,8 @@ public class TopMenuBar extends JMenuBar {
changeTheme(selectedThemeName);
JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
JOptionPane.INFORMATION_MESSAGE);
// JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "部分细节重启应用后生效!\n\n", "成功",
// JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e1) {
JOptionPane.showMessageDialog(MainWindow.getInstance().getMainPanel(), "保存失败!\n\n" + e1.getMessage(), "失败",