歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 用Java實現程序最小化到托盤區

用Java實現程序最小化到托盤區

日期:2017/3/1 10:37:33   编辑:Linux編程

我在程序中實測必須是16*16的圖片才行

下面的這個程序簡單地實現了把java應用程序縮小到托盤的方法.

程序運行的jdk要是1.6才行,因為這是J2SDK1.6新加的一些類和方法.

import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import javax.imageio.ImageIO;

public class Test extends JFrame{
private TrayIcon trayIcon;//托盤圖標
private SystemTray systemTray;//系統托盤

public Test()
{
super("系統托盤圖標");
systemTray = SystemTray.getSystemTray();//獲得系統托盤的實例
setSize(150,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
try {
trayIcon = new TrayIcon(ImageIO.read(new File("0.gif")));
systemTray.add(trayIcon);//設置托盤的圖標,0.gif與該類文件同一目錄
}
catch (IOException e1) {e1.printStackTrace();}
catch (AWTException e2) {e2.printStackTrace();}

this.addWindowListener(
new WindowAdapter(){
public void windowIconified(WindowEvent e){
dispose();//窗口最小化時dispose該窗口
}
});

trayIcon.addMouseListener(
new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getClickCount() == 2)//雙擊托盤窗口再現
setExtendedState(Frame.NORMAL);
setVisible(true);
}
});
}

public static void main(String args[])
{
new Test();
}
}

另:

package awt;

import java.awt.AWTException;
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;


public class TrayDemo extends JFrame {

private TrayIcon trayIcon = null; // 托盤圖標

private SystemTray tray = null; // 本操作系統托盤的實例

public static TrayDemo trayDemo = new TrayDemo();

private TrayDemo() {
init();
}

public void init() {
if (SystemTray.isSupported()) { // 如果操作系統支持托盤
this.tray();
}
this.setSize(300, 200);
this.setResizable(false);
// 窗口關閉時觸發事件
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}

public void windowIconified(WindowEvent e) {
try {
tray.add(trayIcon); // 將托盤圖標添加到系統的托盤實例中
//setVisible(false); // 使窗口不可視
dispose();
} catch (AWTException ex) {
ex.printStackTrace();
}
}
});

}

private void tray() {

tray = SystemTray.getSystemTray(); // 獲得本操作系統托盤的實例
ImageIcon icon = new ImageIcon("images/30.gif"); // 將要顯示到托盤中的圖標

PopupMenu pop = new PopupMenu(); // 構造一個右鍵彈出式菜單
MenuItem show = new MenuItem("打開程序(s)");
MenuItem exit = new MenuItem("退出程序(x)");
pop.add(show);
pop.add(exit);
trayIcon = new TrayIcon(icon.getImage(), "車輛管理系統", pop);

/**
* 添加鼠標監聽器,當鼠標在托盤圖標上雙擊時,默認顯示窗口
*/
trayIcon.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) { // 鼠標雙擊
tray.remove(trayIcon); // 從系統的托盤實例中移除托盤圖標
setExtendedState(JFrame.NORMAL);
setVisible(true); // 顯示窗口
toFront();
}
}
});
show.addActionListener(new ActionListener() { // 點擊“顯示窗口”菜單後將窗口顯示出來
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon); // 從系統的托盤實例中移除托盤圖標
setExtendedState(JFrame.NORMAL);
setVisible(true); // 顯示窗口
toFront();
}
});
exit.addActionListener(new ActionListener() { // 點擊“退出演示”菜單後退出程序
public void actionPerformed(ActionEvent e) {
System.exit(0); // 退出程序
}
});

}

/**
* 顯示信息
*/
// 返回單一的實例對象
public static TrayDemo getInstanceTrayDemo() {
return trayDemo;
}

// 處理窗口事件

}

Copyright © Linux教程網 All Rights Reserved