| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1321 人关注过本帖
标题:JDK6.0有关托盘的问题
只看楼主 加入收藏
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
 问题点数:0 回复次数:13 
JDK6.0有关托盘的问题

JDK6.0 支持直接对托盘的操作
我做了一个测试的例子 现在在程序中 怎么判断 目前是否在托盘中已经加了TrayIcon
这个方法是什么 我没有6.0的API 谁知道告诉我一下 谢谢
代码如下 参考一下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class TrayTest extends JFrame implements ActionListener{
private TrayIcon trayIcon;
private JPanel jpanel;
private JButton jb1,jb2;
public TrayTest() {
jb1=new JButton("托盘中显示");
jb2=new JButton("托盘中取消");
jpanel=new JPanel();
jpanel.add(jb1);
jpanel.add(jb2);
add(jpanel);
//下面时事件处理
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
SystemTray.getSystemTray().add(trayIcon);
//如果托盘一面已经有.. 则会抛出异常. 这里没做判断
}catch(Exception ex){
System.out.println(ex);
}
}
});
jb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
SystemTray.getSystemTray().remove(trayIcon);
}
});
addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e){//关闭
SystemTray.getSystemTray().remove(trayIcon);
System.exit(0);
}
public void windowIconified(WindowEvent e){//最小化调用
if(SystemTray.isSupported())
{
setVisible(false);
}
else{
System.out.println("无法使用托盘");
}
}
public void windowDeiconified(WindowEvent e){//从最小化变为正常状态时调用

}
});
//事件处理完成.....
initTrayIcon();
setTitle("java托盘的例子");
setSize(300,300);
setVisible(true);
}
private void initTrayIcon(){
SystemTray tray=SystemTray.getSystemTray();
//装载托盘图象
Image image=Toolkit.getDefaultToolkit().getImage("Tray.jpg");
//添加菜单
PopupMenu popup=new PopupMenu();
MenuItem openItem=new MenuItem("open");
MenuItem closeItem=new MenuItem("close");
popup.add(openItem);
popup.add(closeItem);
//为托盘添加信息
trayIcon=new TrayIcon(image,"提示",popup);
try{
tray.add(trayIcon);
}catch(Exception ex){
System.out.println(ex);
}
ActionListener showListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
setVisible(true);
}
};
ActionListener closeListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
};
openItem.addActionListener(showListener);
closeItem.addActionListener(closeListener);
trayIcon.addActionListener(showListener);//同时监听默认事件(Windows下双击托盘图标会触发这个事件)

}
public void actionPerformed(ActionEvent ee){
//......
}
public static void main(String[] args){
TrayTest test=new TrayTest();
}
}

搜索更多相关主题的帖子: 托盘 
2007-01-07 14:08
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 
千里  没在???   

2007-01-07 19:07
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

我对JDK1.6也不熟


可惜不是你,陪我到最后
2007-01-07 19:45
hjq
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-11-21
收藏
得分:0 
那么如果我用JDK 1.5想做一个好似QQ那样的托盘图标,应该怎么做出来呀??请教一下啦 最后是给一小段代码出来呀~谢谢啦

2007-01-07 20:38
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 
那要用JNI  自己做

2007-01-07 20:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
JDK1.5直接做不出来,要用JNI,

JDK1.6已经支持了,去看看API吧,我JDK1.6还不熟

可惜不是你,陪我到最后
2007-01-07 21:08
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
SystemTray.getSystemTray().getTrayIcons()
返回TrayIcon[]

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-01-07 21:53
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 
angeloc
怎么判断目前是否在托盘中已经加了TrayIcon 我没找到这个方法
比如返回一个boolean 来说明是否在托盘中已经加了(某个特定的)TrayIcon 这样的方法有吗??
谢了

2007-01-07 22:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
getTrayIcons() 它会返回所有的TrayIcon,你比较一样不就可以了吗

可惜不是你,陪我到最后
2007-01-07 23:06
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
收藏
得分:0 

明白 呵呵


2007-01-07 23:09
快速回复:JDK6.0有关托盘的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041102 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved