Czesc!
Chcialbym moc reagowac na zdarzenie klkniecia na X "chmurki" wyskakujacej z tray'a, tylko jakos nie moge uzyskac takiego efektu.
Moze ktos z Was rozkminil takie cos, wiec prosze o pomoc? :)
import java.awt.AWTException;
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 javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class TrayDemo2 implements ActionListener {
// Ikonka aplikacji
private TrayIcon ticon;
// Menu kontekstowe
private PopupMenu pm = new PopupMenu();
// Obszar powiadomień (tray)
private SystemTray tray = SystemTray.getSystemTray();
// Wątek przeszukiwania
public TrayDemo2() {
// Stworzenie ikonki aplikacji
ticon = new TrayIcon(new ImageIcon("./img/ok.png").getImage(),
"Search files", pm);
ticon.setImageAutoSize(true);
// Reakcja na kliknięcie w "balon"
ticon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, 666);
}
});
ticon.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("mouseReleased");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("mousePressed");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("mouseExited");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("mouseEntered");
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouseClicked");
}
});
// Dodanie ikonki do obszaru powiadomień
try {
tray.add(ticon);
} catch (AWTException exc) {
exc.printStackTrace();
}
// Pokazujemy dymek z info, że szukanie zakończone
ticon.displayMessage("Tester", "To tylko test...",
TrayIcon.MessageType.INFO);
}
// Obsługa wyborów z menu kontekstowego
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("Exit"))
System.exit(0);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TrayDemo2();
}
});
}
}