导航:首页 > 编程语言 > 托盘程序java

托盘程序java

发布时间:2022-08-22 06:45:39

java swing 系统托盘问题

java
最小化到系统托盘

2010-09-06 15:32
package test;
import java.awt.AWTException;
import java.awt.Image;
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 java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MyTray {
TrayIcon trayIcon;//
托盘图标,但不是
Image
类型的



SystemTray Tray;//
系统托盘

Image
img=(new
ImageIcon("images/icon.png")).getImage();//
托盘图标,建
议使用较小的图片

public MyTray(){

final JFrame frame=new JFrame();
JPanel jp=new JPanel();
frame.add(jp);
frame.setSize(320,240);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setIconImage(img);//
设置窗口左上角的图标

frame.setVisible(true);
Tray=SystemTray.getSystemTray();//
获得系统托盘实例

//
创建系统托盘的右键弹出菜单

PopupMenu pm=new PopupMenu();
MenuItem mi0=new MenuItem("Open");
MenuItem mi1=new MenuItem("Close");
pm.add(mi0);
pm.add(mi1);

trayIcon=new TrayIcon(img,"",pm);//
创建托盘图标实例

trayIcon.setImageAutoSize(true);//
图标自动适应托盘,也就是说它自动
改变大小

trayIcon.setToolTip(" ");//
设置提示语

//
添加系统托盘图标

frame.addWindowListener(new
WindowAdapter()
{//
当“关闭”窗口时,最
小化到系统托盘

public void windowClosing(WindowEvent e) {
try {
Tray.add(trayIcon);
} catch (AWTException exc) {
exc.printStackTrace();
}
}});
mi0.addActionListener(new ActionListener(){ //
右键弹出菜单的事件
监听

public void actionPerformed(ActionEvent e) {
frame.setExtendedState(JFrame.NORMAL);
frame.setVisible(true);
Tray.remove(trayIcon);
}
});

mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
Tray.remove(trayIcon);//
退出程序,移出系统托盘处的图标

⑵ 我要用JAVA做一个系统托盘,点最小化按钮,要怎么监听或者给我来个系统托盘的全代码 不要网上复制的

以下代码直接即可运行,注意修改一下托盘图标的文件路径!

/////////////////////////////////////////////////////////////////////
import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.TrayIcon.MessageType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;

public class SystemTrayTest extends JFrame {

public SystemTrayTest() throws AWTException {
this.setSize(500, 300);
this.setLocation(100, 50);

//判断当前操作系统是否支持托盘
if (SystemTray.isSupported()) {
//获取系统托盘
SystemTray tray = SystemTray.getSystemTray();

//托盘的右键菜单
PopupMenu menu = new PopupMenu();
//退出菜单
MenuItem exitItem = new MenuItem("Exit");
exitItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

//显示主窗口菜单
MenuItem showItem = new MenuItem("Show the main frame");
showItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
SystemTrayTest.this.setVisible(true);
}
});

//关于菜单(未注册事件)
MenuItem aboutItem = new MenuItem("about...");

menu.add(exitItem);
menu.add(showItem);
menu.add(aboutItem);

//托盘的标题
String title = "Hey,Java!";
//托盘图标
Image img = Toolkit.getDefaultToolkit().getImage("icon.jpg");
//实例化TrayIcon对象
TrayIcon icon = new TrayIcon(img, title, menu);
//托盘添加鼠标事件
icon.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
SystemTrayTest.this.setVisible(true);
}
});

tray.add(icon);
icon.displayMessage("Hello!", "this is my DIY SystemTray!",
MessageType.INFO);// 运行程序的时候右下角会提示信息
}
}

public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new SystemTrayTest().setVisible(true);
} catch (AWTException e) {
e.printStackTrace();
}
}
});
}
}

⑶ 我有一个java托盘程序,需要右击托盘图标出菜单后点击启动才运行,如何设置开机自动运行

import java.io.IOException;
public class AutoStart {
public static void changeStart(boolean isStartAtLogon) throws IOException {
String regKey = "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
String myAppName = "mytest";
String exePath = "\"d:\\我的文档\\桌面\\华容道(横刀立马图解).ppt\"";
Runtime.getRuntime().exec("reg " + (isStartAtLogon ? "add " : "delete ") + regKey + " /v " + myAppName
+ (isStartAtLogon ? " /t reg_sz /d " + exePath : " /f"));
}
public static void main(String[] args) throws IOException {
try {
changeStart(true);
} catch (IOException e) {
// changeStart(false);
e.printStackTrace();
}
}
}

⑷ java应用程序系统托盘的问题

演示程序,程序启动后会在托盘处显示一个黑色方块代表图标,鼠标移上去会有提示,右键点击会有菜单。

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.JOptionPane;

public class TrayIconTest {
public static void main(String[] args) throws Exception {
TrayIcon ti = new TrayIcon(new BufferedImage(16, 16, 1));
ti.setImageAutoSize(true);
if (SystemTray.isSupported()) {
SystemTray.getSystemTray().add(ti);
ti.setToolTip("Trayicon test.");
ActionListener l = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String ac = e.getActionCommand();
if (ac.equalsIgnoreCase("action 1")) {
System.out.println("Menu 1 performed.");
} else if (ac.equalsIgnoreCase("action 2")) {
System.out.println("Menu 2 performed.");
JOptionPane.showMessageDialog(null, "Hello world.");
} else if (ac.equalsIgnoreCase("action 3")) {
System.out.println("Menu exit performed.");
System.exit(0);
}
}
};
PopupMenu pm = new PopupMenu();
MenuItem mi = new MenuItem("Menu 1");
mi.setActionCommand("action 1");
mi.addActionListener(l);
pm.add(mi);
mi = new MenuItem("Menu 2");
mi.setActionCommand("action 2");
mi.addActionListener(l);
pm.add(mi);
mi = new MenuItem("Menu exit");
mi.setActionCommand("action 3");
mi.addActionListener(l);
pm.add(mi);

ti.setPopupMenu(pm);
}
}
}

⑸ java swing 系统托盘

这里有一个文件,是介绍java最小化到托盘里的!

你可以下载看看!
另外,虚机团上产品团购,超级便宜

⑹ java 怎么设置鼠标点击外面 程序托盘隐藏

packageawt;importjava.awt.AWTException;importjava.awt.MenuItem;importjava.awt.PopupMenu;importjava.awt.SystemTray;importjava.awt.TrayIcon;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.ImageIcon;importjavax.swing.JFrame;{privateTrayIcontrayIcon=null;//托盘图标privateSystemTraytray=null;//本操作系统托盘的实例publicstaticTrayDemotrayDemo=newTrayDemo();privateTrayDemo(){init();}publicvoidinit(){if(SystemTray.isSupported()){//如果操作系统支持托盘this.tray();}this.setSize(300,200);this.setResizable(false);//窗口关闭时触发事件addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}publicvoidwindowIconified(WindowEvente){try{tray.add(trayIcon);//将托盘图标添加到系统的托盘实例中//setVisible(false);//使窗口不可视dispose();}catch(AWTExceptionex){ex.printStackTrace();}}});}privatevoidtray(){tray=SystemTray.getSystemTray();//获得本操作系统托盘的实例ImageIconicon=newImageIcon("images/30.gif");//将要显示到托盘中的图标PopupMenupop=newPopupMenu();//构造一个右键弹出式菜单MenuItemshow=newMenuItem("打开程序(s)");MenuItemexit=newMenuItem("退出程序(x)");pop.add(show);pop.add(exit);trayIcon=newTrayIcon(icon.getImage(),"车辆管理系统",pop);/***添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口*/trayIcon.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){//鼠标双击tray.remove(trayIcon);//从系统的托盘实例中移除托盘图标setExtendedState(JFrame.NORMAL);setVisible(true);//显示窗口toFront();}}});show.addActionListener(newActionListener(){//点击“显示窗口”菜单后将窗口显示出来publicvoidactionPerformed(ActionEvente){tray.remove(trayIcon);//从系统的托盘实例中移除托盘图标setExtendedState(JFrame.NORMAL);setVisible(true);//显示窗口toFront();}});exit.addActionListener(newActionListener(){//点击“退出演示”菜单后退出程序publicvoidactionPerformed(ActionEvente){System.exit(0);//退出程序}});}/***显示信息*///返回单一的实例对象(){returntrayDemo;}//处理窗口事件}

⑺ java程序在eclipse中运行,托盘是有图标的,导出为可执行文件后,运行托盘没图片了

路径问题。
打包进jar文件的资源(图片,字体,声音)使用 Class/ClassLoader的getResouce/getResourceAsStream读入

linux环境下,使用java最小化托盘时右键菜单没有样式!!

linux哪来的托盘?不是所有人都用gnome kde,还有用dwm jwm qtile等等,怎么办?

⑼ JAVA程序系统托盘里面有两个一样的图标的问题

程序结束时,没退出。

鼠标移到上面,就消失。

阅读全文

与托盘程序java相关的资料

热点内容
程序员简易表白代码 浏览:163
什么是无线加密狗 浏览:60
国家反诈中心app为什么会弹出 浏览:64
cad压缩图打印 浏览:100
网页打开速度与服务器有什么关系 浏览:859
android开发技术文档 浏览:62
32单片机写程序 浏览:43
三星双清无命令 浏览:835
汉寿小程序源码 浏览:340
易助erp云服务器 浏览:530
修改本地账户管理员文件夹 浏览:416
python爬虫工程师招聘 浏览:283
小鹏p7听音乐哪个app好 浏览:354
linux下的防火墙 浏览:954
凌达压缩机美芝压缩机 浏览:350
php后面代码不执行 浏览:236
微我手机怎样设置应用加密 浏览:203
条件加密 浏览:628
androidstudio设置中文 浏览:641
汽车换压缩机能提升制冷 浏览:629