📄 starter.java
字号:
package qianqian.p2pchat.tools;
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import qianqian.p2pchat.control.Controller;
import qianqian.p2pchat.gui.*;
//客户端启动类
public class Starter {
private static Starter starter = null;
private static RoomForm qianqian = null;
private Starter() {
}
// 创建单实列
public static Starter getInstance() {
if (null == starter) {
starter = new Starter();
}
return starter;
}
// 创建托盘
public boolean createTrayIcon(String trayImage, String trayName,
PopupMenu popup) {
boolean isCreated = false;
final TrayIcon trayIcon;
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage(trayImage);
trayIcon = new TrayIcon(image, trayName, popup);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
qianqian.setVisible(!qianqian.isVisible());
if (qianqian.isVisible()) {
qianqian.setExtendedState(JFrame.NORMAL);
qianqian.toFront();
}
}
});
try {
tray.add(trayIcon);
isCreated = true;
} catch (AWTException e) {
System.err.println("无法创建托盘:" + e);
isCreated = false;
}
}
return isCreated;
}
// 创建这个tray上的右键弹出式菜单
public PopupMenu createPopup() {
PopupMenu popup = new PopupMenu();
MenuItem menuOpen = new MenuItem("打开");
MenuItem menuHide = new MenuItem("隐藏");
MenuItem menuExit = new MenuItem("退出");
ActionListener exitListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(Controller.isOn())
Controller.getInstance().quit();
qianqian.dispose();
System.exit(0);
}
};
ActionListener openListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
qianqian.setVisible(true);
qianqian.setExtendedState(JFrame.NORMAL);
qianqian.toFront();
}
};
ActionListener hideListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
qianqian.setVisible(false);
}
};
menuOpen.addActionListener(openListener);
menuHide.addActionListener(hideListener);
menuExit.addActionListener(exitListener);
popup.add(menuOpen);
popup.add(menuHide);
popup.add(menuExit);
return popup;
}
public void setRoomform(RoomForm form) {
qianqian = form;
}
// 创造显示图形界面
public static void main(String[] args) {
// 创建客户端界面
SwingUtilities.invokeLater(new Runnable() {
public void run() {
javax.swing.JDialog.setDefaultLookAndFeelDecorated(true);
javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);
java.awt.Toolkit.getDefaultToolkit().setDynamicLayout(true);
qianqian = LoginForm.getInstance();
qianqian.setVisible(true);
qianqian.toFront();
}
});
// 工作目录下使用的tray图标文件
Starter starter = getInstance();
PopupMenu pop = starter.createPopup();
if (!starter.createTrayIcon("icons\\y.gif", "QianQian客户端", pop)) {
System.out.println("不能创建托盘");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -