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);
}
} |
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
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.
ú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!
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!
blacktiger said
minh dang lam mot project quan ly khac san, dang can may cai code systray nay thanks ban nhiu nha
blacktiger said
ah!! ban co biet cach inport export du lieu tu excel vao SQLsever k!! ban cho minh mot it code nha
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
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
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 ạ