很明显,JAVA中的系统托盘,如果要实现,重要的是两个类,一个是SystemTray,而另一个是TrayIcon。需要为TrayIcon设置好图片,它需要显示的信息以及右键点击的PopupMenu.PopupMenu的使用很简单,就是将需要的MenuItem添加入PopupMenu中。

以下是一段示例代码,用于表明系统托盘如何实现。

import java.awt.*; import java.awt.TrayIcon.MessageType; import java.awt.event.*; import javax.swing.*; public class MainFrame extends JFrame implements ActionListener{ private JLabel jl1,jl2; private JTextField jt_username; private JPasswordField jp_password; private JButton jb_enter,jb_exit; private TrayIcon trayicon; private void initCompoenent() { setSize(300,200); setLayout(new GridLayout(3,2)); jl1=new JLabel("用户名:"); jl2=new JLabel("密码:"); jt_username=new JTextField(); jp_password=new JPasswordField(); jb_enter=new JButton("登陆"); jb_exit=new JButton("退出"); jb_enter.addActionListener(this); jb_exit.addActionListener(this); add(jl1); add(jt_username); add(jl2); add(jp_password); add(jb_enter); add(jb_exit); setVisible(true); } @Override public void actionPerformed(ActionEvent ex) { // TODO Auto-generated method stub if(ex.getSource().equals(jb_enter)) { String username=jt_username.getText().toString().trim(); String password=String.copyValueOf(jp_password.getPassword()); if(username.equals("passzh")&&password.equals("1988")) { JOptionPane.showMessageDialog(null, "登陆成功"); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误"); } } else if(ex.getSource().equals(jb_exit)) { System.exit(0); } else if(ex.getSource().equals(trayicon)) { if(!isVisible()) { setVisible(true); toFront(); } } } public MainFrame() { initCompoenent(); if(!SystemTray.isSupported()) { return; } else { SystemTray systemTray=SystemTray.getSystemTray(); String title="登陆窗口"; String company="passZh write"; Image image=Toolkit.getDefaultToolkit().getImage(getClass().getResource("image/sysTray.png")); trayicon=new TrayIcon(image,title+"/n"+company,createMenu()); trayicon.addActionListener(this); try { systemTray.add(trayicon); trayicon.displayMessage(title, company, MessageType.INFO); } catch (AWTException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private PopupMenu createMenu() { PopupMenu menu=new PopupMenu(); MenuItem exit=new MenuItem("关闭"); exit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ex) { System.exit(0); } }); MenuItem open=new MenuItem("打开"); open.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ex) { if(!isVisible()) { setVisible(true); toFront(); } else { toFront(); } } }); menu.add(open); menu.addSeparator(); menu.add(exit); return menu; } public static void main(String[] args) { MainFrame mai=new MainFrame(); } }

java中系统托盘的实现相关推荐

  1. Java——SystemTray系统托盘

    ┏(ω)=☞ 本专栏的目录(为您提供更好的查询方式)(点这里说不定有你想要的) import java.awt.*; import java.awt.event.*; import java.net. ...

  2. swt中系统托盘Tray的实现

    在做gui界面的时候,系统托盘是屡见不鲜的功能,也是通用的.基础的功能之一,什么叫做系统托盘呢?就是最小化之后在右下角有个小图标可以还原: 这样的效果在swt中是怎么实现的呢?这里需要用到swt中的T ...

  3. Guava关于JAVA中系统组件之间交互通讯(非线程之间通讯)

    2019独角兽企业重金招聘Python工程师标准>>> Guava EventBus组件 // Class is typically registered by the contai ...

  4. java中系统撤销对象顺序实例,撤消/重做功能Java的对象序列化

    游戏编程与"企业应用程序"编程和"webapp编程"没有多大关系. 所以这取决于你正在做什么样的游戏,但你的方法和gaven所以这些票价与游戏状态在" ...

  5. popupmenu java_Java基于JPopupMenu实现系统托盘的弹出菜单,解决PopupMenu弹出菜单中文乱码...

    本人萌新,利用业余时间学习Java.最近在写一个GUI程序的时候遇到一个问题,系统托盘创建弹出菜单中文乱码,网上搜索很多内容都没有找到解决方案,现将个人解决方案分享给大家,希望有所帮助 一.Popup ...

  6. 【JavaFx实现系统托盘,去重AWT托盘乱码】

    [JavaFx实现系统托盘,去重AWT托盘乱码] 说明 Javafx实现系统托盘,默认使用的是awt的组件, 但是源码是utf-8,程序运行的时候有中文菜单就产生乱码,即使转码也无效,参考资料说Pop ...

  7. 在 Ubuntu Natty 中解除系统托盘限制

    在 Ubuntu 11.04 Natty 中,Ubuntu 对顶部面板右上角的通知区域(系统托盘)采用了白名单制度,只有支持 Indicators 并位于白名单的部分程序才会被显示在系统托盘中,目前支 ...

  8. java对托盘加监听右击报错_java实现系统托盘示例

    桌面的系统托盘即当程序最小化或者关闭按钮程序并没有退出,而是最小化在任务状态区域(Windows系统),当鼠标点击那个区域所在的图标有提示以及其他的操作.在 Microsoft Windows 上,它 ...

  9. java电子通讯录毕业设计_(C)JAVA001电子通讯录(带系统托盘)

    打开Server Socket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket 服务:? 使用ServerSocket类的accept()方法使服务器型套接 ...

最新文章

  1. python扫雷代码文件_基于Python实现的扫雷游戏实例代码
  2. app专项测试(稳定性测试、安全性测试)
  3. 写一个函数,输入int型,返回整数逆序后的字符串
  4. 写了人生中第一个完整模块的用例
  5. ChannelHandler 与 ChannelPipeline 详解
  6. 用脚本实现FTP的上传和下载
  7. 【领域综述】NLP领域,你推荐哪些综述性的文章?
  8. 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
  9. scikit-learn中的Scaler
  10. 西部世界:币本位是什么?
  11. php file_put_contents 保存不了,php file_put_contents不能写入问题
  12. 华为设备IPsec简单配置
  13. 笔记本当服务器显示器怎么连接,笔记本当主机显示器的设置方法
  14. git clone时出现的两种错误解决方法
  15. 公钥密码的三大数学问题
  16. 【C语言】大一小白的一个C语言扎金花小程序
  17. Codeforces Round #360(div2)
  18. 计算机工程学院文艺例会,信息快讯 | 喜迎学代会-信息与计算机工程学院学生会组织召开第二次全体工作例会...
  19. 一个购房者的辛酸经历(纯属娱乐)
  20. 6, excel vba 我的女神是谁__初识变量

热门文章

  1. 包装类中Integer类最全详解
  2. 32位(x86)和64位(x64)
  3. 各种奇奇怪的不明链接!长期更...
  4. 智行者获北京自动驾驶T3路测牌照的「高速无人车“星骥”」体验如何?...
  5. 你也能看懂的:主成分分析法
  6. 魔鬼与牧师——动作分离版
  7. 财务内部收益率用计算机怎么算,财务内部收益率EXCEL怎么计算
  8. [Python私活案例]24行代码,轻松赚取400元,运用Selenium爬取39万条数据
  9. (转)查看USB设备
  10. GC导致线上CPU超100%