写个当前窗口的监听事件,当点击关闭的时候,不退出程序,而是把该窗口设置为不可见的,同时弄个最小化到任务栏托盘函数,调用它就行了!代码就不写给你了,自己翻下API就行了!
Ⅱ 用Java做一个聊天程序,在任务栏处提示效果怎么做
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=0;i<itemArray.length;i++){
if(i<4){
itemArray[i].addActionListener(this);//为菜单项注册监听器
//将菜单项数组中前3个菜单项添加进"弹出消息"菜单中
menu.add(itemArray[i]);
}
itemArray[4].addActionListener(this);//添加监听
popup.add(menu);//将弹出消息菜单添加到菜单中
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();
}
}
Ⅲ java中怎样实现一个窗体最小化在系统托盘,而不是占用一片任务栏的区域
当然可以。
不过你的窗体可以继承 JDialog 不要继承JFrame
然后把窗口设为模态窗口,试一下。
其实我曾经写过一个继承JFrame的也能达到你要的那个效果,不过那种写法很少用,已经是三四年前的事情,我都不记得是怎么写的了。
大概思路:更改JFrame的窗口样式。
Ⅳ java程序如何不让他在任务栏中显示
任务栏修复工具下载参考: http://hi..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然后关闭注册表编辑器,在任务管理器的菜单上选"关机"->重新启动