Java1.6.0实现GUI系统托盘技术演示代码(附详细注释)
- import java.awt.AWTException;
- import java.awt.MenuItem;
- import java.awt.PopupMenu;
- import java.awt.SystemTray;
- import java.awt.TrayIcon;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.UIManager;
- import javax.swing.UnsupportedLookAndFeelException;
- /**
- * Java1.6.0实现系统托盘技术演示
- *
- * @author 五斗米 <如转载请保留作者和出处>
- * @blog https://www.wenjiangs.com/wp-content/uploads/chinaunix/202206/icon.gif"); // 将要显示到托盘中的图标
- PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单
- MenuItem show = new MenuItem("显示窗口");
- MenuItem exit = new MenuItem("退出演示");
- MenuItem author = new MenuItem("Author");
- /**
- * TrayIcon有三个构造
- * TrayIcon(Image image) 用“图标”来构造
- * TrayIcon(Image image, String tooltip) 用“图标”和“ToolTip”构造
- * TrayIcon(Image image, String tooltip, PopupMenu popup) 用“图标”,“ToolTip”,“弹出菜单”来构造一个托盘图标
- */
- trayIcon = new TrayIcon(icon.getImage(), "Java1.6.0托盘技术演示", pop);
- // 点击本按钮后窗口被关闭,托盘图标被添加到系统的托盘中
- button.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- try {
- tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中
- setVisible(false); // 使窗口不可视
- } catch (AWTException ex) {
- ex.printStackTrace();
- }
- }
- });
- /**
- * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口
- */
- trayIcon.addMouseListener(new MouseAdapter() {
- public void mouseClicked(MouseEvent e) {
- if(e.getClickCount()==2){ // 鼠标双击
- tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
- setVisible(true); // 显示窗口
- }
- }
- });
- show.addActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来
- public void actionPerformed(ActionEvent e) {
- tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
- setVisible(true); // 显示窗口
- }
- });
- exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后退出程序
- public void actionPerformed(ActionEvent e) {
- System.exit(0); // 退出程序
- }
- });
- author.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- showMessage();
- }
- });
- pop.add(show);
- pop.add(exit);
- pop.add(author);
- }
- /**
- * 显示信息
- */
- private void showMessage(){
- JOptionPane.showMessageDialog(this,
- new JLabel("<html>作者:mq612(五斗米)<br>Blog:http://blog.csdn.net/mq612</html>"),
- "五斗米", JOptionPane.INFORMATION_MESSAGE);
- }
- public static void main(String[] args) {
- new TrayDemo();
- }
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论