使用Java实现系统托盘功能的介绍(附源码以及截图)
Java中如何,实现系统托盘功能.
示例图
项目包结构图
系统运行截图
应用核心逻辑说明,隐藏到托盘实质就是讲窗体隐藏.即setVisible(false),显示窗体即就是讲setVisible(true).
项目代码如下:
复制代码 代码如下:
package org.pdp.frame;
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.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MainFrame extends JFrame implements ActionListener{
private static final long serialVersionUID = -7078030311369039390L;
private JMenu menu;
private JMenuBar jmenuBar;
private String [] jmItemName = {"置于托盘","系统退出"};
public MainFrame(){
super("电话薄");
init();
this.setSize(500,400);
this.setJMenuBar(jmenuBar);
this.setLocationRelativeTo(null);
systemTray(); //系统托盘
}
/**
* 初始化界面
*/
public void init(){
menu = new JMenu("系统窗体");
for(int i=0; i<jmItemName.length; i++){
JMenuItem menuItem = new JMenuItem(jmItemName[i]);
menuItem.addActionListener(this);
menu.add(menuItem);
}
this.jmenuBar = new JMenuBar();
this.jmenuBar.add(menu);
}
@Override
public void actionPerformed(ActionEvent e) {
String actions = e.getActionCommand();
if("置于托盘".equals(actions)){
this.setVisible(false);
}
if("系统退出".equals(actions)){
System.exit(0);
}
}
/**系统托盘图标处理.*/
private void systemTray(){
if(SystemTray.isSupported()){ //判断系统是否支持托盘功能.
URL resource = this.getClass().getResource("systray.jpg"); //获得图片路径
ImageIcon icon = new ImageIcon(resource); //创建图片对象
PopupMenu popupMenu = new PopupMenu(); //创建弹出菜单对象
MenuItem itemExit = new MenuItem("退出系统"); //创建弹出菜单中的退出项
MenuItem itemShow = new MenuItem("显示窗体"); //创建弹出菜单中的显示主窗体项.
itemExit.addActionListener(new ActionListener() { //给退出像添加事件监听
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
itemShow.addActionListener(new ActionListener() { //给窗体最小化添加事件监听.
@Override
public void actionPerformed(ActionEvent e) {
setVisible(true);
}
});
popupMenu.add(itemExit);
popupMenu.add(itemShow);
TrayIcon trayIcon = new TrayIcon(icon.getImage(),"电话薄系统",popupMenu);
SystemTray sysTray = SystemTray.getSystemTray();
try {
sysTray.add(trayIcon);
} catch (AWTException e1) { }
}
}
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
new MainFrame().setVisible(true);
}
}
您可能感兴趣的文章:
- Java中实现系统托盘功能(代码全贴,附加运行截图)
- 使用Java实现简单的server/client回显功能的方法介绍
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- Java下类似QQ截图的实现,支持热键,系统托盘
- 源码推荐(0630):UISearchController的详细使用,下拉放大视图以及系统自带的毛玻璃的介绍
- Java 工具类 - 使用POI以及反射实现导出Excel的功能
- 使用Java实现B/S系统常见的获取客户端信息功能!
- 使用Java实现B/S系统常见的获取客户端信息功能!
- 使用Java实现简单的server/client回显功能的方法介绍
- 【干货】利用MVC5+EF6搭建博客系统(四)(上)前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- 第九节 java数组的介绍,数组定义,数组排序,Arrays类静态方法使用,以及源码解析
- 使用Java实现简单的server/client回显功能的方法介绍
- 使用openssl实现ECDSA签名以及验证功能(附完整测试源码)
- AutoCompleteTextView的使用和源码分析以及实现响应式输入提示功能
- 3.第三单元任务二实训:使用作业提交系统提交Java作业时 ,需要输入Java源代码文件名和自己的邮箱,提交前对Java文件名以及邮箱进行有效检查。编写程序实现对输入的Java源文件名以及邮箱有效性的
- Java字符串分割方法split()的功能以及使用方法的详细介绍!
- spark mllib中的随机森林算法,实现源码以及使用介绍
- 在RCP中实现系统托盘功能