Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Tạo/Hủy System Tray icon

import java.awt.AWTException;
import java.awt.Image;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test {
static Image image = Toolkit.getDefaultToolkit().getImage(“images/tray.gif”);

static TrayIcon trayIcon = new TrayIcon(image, “Tester2”);

public static void main(String[] a) throws Exception {
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();

trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(“In here”);
trayIcon.displayMessage(“Tester!”, “Some action performed”, TrayIcon.MessageType.INFO);
}
});

try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println(“TrayIcon could not be added.”);
}
}
}
}

Hủy bỏ System tray icon

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

public class SystemTrayDemo1 {
public static void main(String[] args) throws Exception {
if (!SystemTray.isSupported()) {
return;
}
SystemTray tray = SystemTray.getSystemTray();

PropertyChangeListener pcl;
pcl = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent pce) {
System.out.println(“Property changed = ” + pce.getPropertyName());
TrayIcon[] tia = (TrayIcon[]) pce.getOldValue();
if (tia != null) {
System.out.println(“Old tray icon array contents: “);
for (int i = 0; i < tia.length; i++)
System.out.println(tia[i]);
System.out.println();
}

tia = (TrayIcon[]) pce.getNewValue();
if (tia != null) {
System.out.println(“New tray icon array contents: “);
for (int i = 0; i < tia.length; i++)
System.out.println(tia[i]);
System.out.println();
}
}
};
tray.addPropertyChangeListener(“trayIcons”, pcl);

Dimension size = tray.getTrayIconSize();
BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();

g.setColor(Color.blue);
g.fillRect(0, 0, size.width, size.height);
g.setColor(Color.yellow);
int ovalSize = (size.width < size.height) ? size.width : size.height;
ovalSize /= 2;
g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);

TrayIcon icon = null;
tray.add(icon = new TrayIcon(bi));

Thread.sleep(3000);
tray.remove(icon);

Thread.sleep(3000);
System.exit(0);
}

}

9 Responses to “Tạo/Hủy System Tray icon”

  1. us said

    2 đoạn code trên này có ý nghĩa gì vậy bạn, mình đọc cũng thấy hay hay mà chưa hình dung ra sao. thân bạn nha

  2. vovanhai said

    Hay là hay thế nào trong khi bạn không biết nó dùng để làm gì?
    Đây là đoạn code dùng để ẩn/ hiện 1 biểu tượng bên dưới “khay hệ thống” (system tray: các biểu tượng nằm ở góc dưới bên phải màn hình như battery, networks, unikey,…). Dùng đoạn code này khi bạn muốn ứng dụng của mình cũng sẽ được nằm ở đó cho nó pro.

  3. út thậm said

    chào bạn, mình không học chuyên về tin học nên cũng không biết nhiều lắm. mình muốn hỏi là có thể làm mất một icon của một chương trình đang chạy nằm dưới thanh Tray không? ví dụ như mình muốn cài phần mềm logmein vào máy ở nhà để quản lý thằng em, phải để phần mềm này chạy khởi động cùng win nhưng không cho hiện icon ở Tray. rất mong!

  4. vovanhai said

    Ở đây chúng ta cho chương trình của chúng ta viết nằm ở systray chứ không phải cho chương trình của người khác viết. Về điều bạn hỏi tôi cũng không biết có tool nào làm được điều đó không. Thân mến!

  5. blacktiger said

    minh dang lam mot project quan ly khac san, dang can may cai code systray nay thanks ban nhiu nha

  6. blacktiger said

    ah!! ban co biet cach inport export du lieu tu excel vao SQLsever k!! ban cho minh mot it code nha

  7. Duy said

    Rất hữu dụng khi lập trình 1 chươn trình auto nào đó hoặc 1 chương trình ứng dụng nhỏ. Cám ơn bạn nhiều nghe vì đây là thứ mình đang tìm hehe

  8. trieunb said

    chào thầy!
    theo em trong các ví dụ thầy post lên nên có chú thích trong code lun khi đọc cho dể hiểu

  9. huy said

    em bị sai font khi sử dụng systray. Chạy trong netbeans thì không sai, lúc build rồi thì font bị sai. Giúp em được không ạ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: