Thêm Mouse Listener vào Tray Icon
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
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.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
public class SystemTrayDemo2 {
public static void main(String[] args) {
if (!SystemTray.isSupported()) {
return;
}
SystemTray tray = SystemTray.getSystemTray();
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);
try {
PopupMenu popup = new PopupMenu();
MenuItem miExit = new MenuItem(“Exit”);
ActionListener al;
al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(“Goodbye”);
System.exit(0);
}
};
miExit.addActionListener(al);
popup.add(miExit);
TrayIcon ti = new TrayIcon(bi, “System Tray Demo #2”, popup);
al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
}
};
ti.setActionCommand(“My Icon”);
ti.addActionListener(al);
MouseListener ml;
ml = new MouseListener() {
public void mouseClicked(MouseEvent e) {
System.out.println(“Tray icon: Mouse clicked”);
}
public void mouseEntered(MouseEvent e) {
System.out.println(“Tray icon: Mouse entered”);
}
public void mouseExited(MouseEvent e) {
System.out.println(“Tray icon: Mouse exited”);
}
public void mousePressed(MouseEvent e) {
System.out.println(“Tray icon: Mouse pressed”);
}
public void mouseReleased(MouseEvent e) {
System.out.println(“Tray icon: Mouse released”);
}
};
ti.addMouseListener(ml);
MouseMotionListener mml;
mml = new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
System.out.println(“Tray icon: Mouse dragged”);
}
public void mouseMoved(MouseEvent e) {
System.out.println(“Tray icon: Mouse moved”);
}
};
ti.addMouseMotionListener(mml);
tray.add(ti);
} catch (AWTException e) {
System.out.println(e.getMessage());
return;
}
}
}
Thêm Mouse Motion Listener vào Tray Icon
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
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.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
public class SystemTrayDemo2 {
public static void main(String[] args) {
if (!SystemTray.isSupported()) {
return;
}
SystemTray tray = SystemTray.getSystemTray();
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);
try {
PopupMenu popup = new PopupMenu();
MenuItem miExit = new MenuItem(“Exit”);
ActionListener al;
al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(“Goodbye”);
System.exit(0);
}
};
miExit.addActionListener(al);
popup.add(miExit);
TrayIcon ti = new TrayIcon(bi, “System Tray Demo #2”, popup);
al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
}
};
ti.setActionCommand(“My Icon”);
ti.addActionListener(al);
MouseListener ml;
ml = new MouseListener() {
public void mouseClicked(MouseEvent e) {
System.out.println(“Tray icon: Mouse clicked”);
}
public void mouseEntered(MouseEvent e) {
System.out.println(“Tray icon: Mouse entered”);
}
public void mouseExited(MouseEvent e) {
System.out.println(“Tray icon: Mouse exited”);
}
public void mousePressed(MouseEvent e) {
System.out.println(“Tray icon: Mouse pressed”);
}
public void mouseReleased(MouseEvent e) {
System.out.println(“Tray icon: Mouse released”);
}
};
ti.addMouseListener(ml);
MouseMotionListener mml;
mml = new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
System.out.println(“Tray icon: Mouse dragged”);
}
public void mouseMoved(MouseEvent e) {
System.out.println(“Tray icon: Mouse moved”);
}
};
ti.addMouseMotionListener(mml);
tray.add(ti);
} catch (AWTException e) {
System.out.println(e.getMessage());
return;
}
}
}
LUONGNGOCQUY said
Thầy ơi thầy có thể cho em hỏi 1 câu được ko ạ!
Làm sao em kiểm tra được sự tồn tại của 1 form ạ!
VD EM CÓ 1 FORM LOGIN TRONG ĐÓ CÓ 1 LABEL SẼ NEW 1 FORM REGISTER ĐỂ ĐĂNG KÝ
LẦN ĐẦU USER CLICK VÀO LABEL ĐÓ THÌ EM SẼ NEW FORM REGISTER
TRONG FORM REGISTER NẾU USER CLICK VÀO CANCEL HAY NÚT [X] ĐỂ CLOSE THÌ EM SẼ CHO FORM NÀY SETVISIBLE(FALSE) HOẶC DISPOSE NÓ VÌ EM KHÔNG THỂ SET EXIT_ON_CLOSE CHO FORM REGISTER ĐƯỢC VÌ NHƯ THẾ NÓ SẼ DIỆT CẢ CHƯƠNG TRÌNH 😦
Ý EM MUỐN HỎI THẦY LÀ KHI USER CLICK VÀO LABEL MỞ REGISTER FORM LÊN VÀO NHỮNG LẦN SAU THÌ EM SẼ LÀM THẾ NÀO ĐỂ KIỂM TRA LÀ FORM ĐÓ ĐÃ TỒN TẠI HAY CHƯA , NẾU RỒI MÀ THÌ EM SẼ SETVISIBLE CỦA NÓ THÀNH TRUE LẠI
CHỨ NẾU MỖI LẦN NGƯỜI DÙNG CLICK VÀO LABEL LẠI NEW FORM REGISTER THÌ SẼ RẤT TỐN BỘ NHỚ.
Võ Văn Hải said
Bạn dùng DISPOSE_ON_CLOSE
đào duy oánh said
thày ơi ! 1 sô chương trình em đọc code không hỉu được hết . Thày có thể chú thích code được khộng ak !