⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 starter.java

📁 一个仿qq的程序源码 一个用纯java开发的
💻 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 + -