环境进程
任务栏修复工具下载参考: http://hi.baidu.com/%C6%AE%C1%E3%B9%AC/blog/item/d0433c5211c348090df3e3fa.html另一种情况:在 Windows XP 系统中,某些情况下可能会出现任务栏工作不正常的情况,比如:任务栏不显示正在运行的帆裂程序的图标,或者在任务栏上总是出现重复的图辩轿高标。要解决这类问题,可以尝试如下方法:(手动修复):按下 Ctrl+Alt+Del 键,打开任务管理器->"进程"选项卡->找到并关闭所有的 explorer.exe 和?iexplore.exe 进程。然后切换到"应用程序"选项卡->新任务->输入"regedit",回车,打开注携尺册表编辑器找到并删除以下三个键:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\StuckRects2HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\StreamsHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\explorer\StreamsMRU然后关闭注册表编辑器,在任务管理器的菜单上选"关机"->重新启动java 可以实现将程序最小化到托盘的吧.....甚至还可以设定最小化到托盘的图标,这样的话,当有新消息到达时,你可以把它的图标设置成无色的另一图片(或者只将其最小化,而不设置其图标),然后再设置成原来的图片,如此反复,就实现了闪烁的功能.........
不过似乎先要判断当前 *** 作系统是否支持系统托盘..........下面这个程序实现了系统托盘,但是似乎在我的电脑上没实现出来,难道 *** 作系统不支持?
import java.awt.*
import java.awt.event.*
import javax.swing.*
public class SystemTrayTest extends JFrame implements ActionListener
{
//创建菜单、菜单项数组、消息类型
PopupMenu popup=new PopupMenu()
Menu menu=new Menu("消息类型")
MenuItem[] itemArray ={new MenuItem("信息消息"),new MenuItem("常规消息"凯桥历),
new MenuItem("警告消息"),new MenuItem("错误消息"),new MenuItem("退出程序")}
//定义系统托盘、托盘图标变量
SystemTray tray
TrayIcon trayIcon
/消嫌/构造方法
public SystemTrayTest(){
//对菜单项添加监听并将菜单项添加到菜单中
for(int i=0i<itemArray.lengthi++){
if(i<4){
itemArray[i].addActionListener(this)//为菜单项注册监听器
//将菜单项数组中前3个菜单项添加进"d出消息"菜单中
menu.add(itemArray[i])
}
itemArray[4].addActionListener(this)//添加监听
popup.add(menu)/盯搜/将d出消息菜单添加到菜单中
popup.add(itemArray[4])//将退出菜单添加到菜单中
}
// 判断当前 *** 作系统是否支持系统托盘
if (SystemTray.isSupported()) {
//获取系统托盘
tray = SystemTray.getSystemTray()
//加载图标
Image image = Toolkit.getDefaultToolkit().getImage("d:/trayIcon.jpg")
//创建托盘图标
trayIcon=new TrayIcon(image,"系统托盘测试",popup)
//托盘图标自动设置尺寸
trayIcon.setImageAutoSize(true)
try{//添加托盘图标到系统托盘中
tray.add(trayIcon)
}
catch(AWTException e){
e.printStackTrace()
}
//为托盘图标注册监听器
trayIcon.addActionListener(this)
}
//设置窗体关闭按扭所执行的动作
this.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
SystemTrayTest.this.hide()//隐藏窗体
}
})
//设置窗体属性
this.setTitle("系统托盘测试")
this.setBounds(200,200,150,100)
this.setVisible(true)
}
//重写actionPerformed方法
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemArray[0])
{//点击信息消息菜单项执行的动作
trayIcon.displayMessage("信息","程序最小化,仍在运行",TrayIcon.MessageType.INFO)
}else if(e.getSource()==itemArray[1])
{//点击信息消息菜单项执行的动作
trayIcon.displayMessage("常规信息","现在一切正常",TrayIcon.MessageType.NONE)
}else if(e.getSource()==itemArray[2])
{//单击警告消息菜单项执行的动作
trayIcon.displayMessage("警告信息","有不明来源的攻击",TrayIcon.MessageType.WARNING)
}else if(e.getSource()==itemArray[3])
{//点击错误消息菜单项执行的动作
trayIcon.displayMessage("错误信息","程序发生严重错误",TrayIcon.MessageType.ERROR)
}else if(e.getSource()==itemArray[4])
{//点击退出程序菜单项执行的动作
System.exit(0)
}else if(e.getSource()==trayIcon)
{//双击托盘图标执行的代码
this.show(true)
}
}
//主方法
public static void main(String args[])
{//创建SystemTrayTest窗体对象
new SystemTrayTest()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)