寫個當前窗口的監聽事件,當點擊關閉的時候,不退出程序,而是把該窗口設置為不可見的,同時弄個最小化到任務欄托盤函數,調用它就行了!代碼就不寫給你了,自己翻下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然後關閉注冊表編輯器,在任務管理器的菜單上選"關機"->重新啟動