Hi,
ich schreibe gerade eine kleine Anwendung die im Systemtray laufen soll, nur hab ich ein Problem auf das ich keine Lösung gefunden habe.
Mit folgendem Code lässt sich ein Systemtray mit Icon wunderbar darstellen:
Jetzt ist es aber so, dass ich den MenuItems gerne kleine Icons zuweisen möchte.
Das scheint aber im Java AWT nicht möglich sondern nur mit Swing.
Also Popup und MenuItem auf JPopup und JMenuItem umgestellt, jetzt mag das aber der Konstruktor TrayIcon in seinen Parametern nicht.
Ich hab nach ner Lösung für beides gegoogelt. Also MenuItem Icon, sowie Systemtray in Swing aber unter den Ergebnissen war nichts verwertbares.
Es meinte einmal jemand, mit setImage, aber ich denke er hat ein SmartAWT oder so ähnlich benutzt.
Besten Dank für Hilfe!
Grüße
Schönen Abend noch
ich schreibe gerade eine kleine Anwendung die im Systemtray laufen soll, nur hab ich ein Problem auf das ich keine Lösung gefunden habe.
Mit folgendem Code lässt sich ein Systemtray mit Icon wunderbar darstellen:
Java:
final TrayIcon trayIcon;
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("res/tray.png");
MouseListener mouseListener = 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!");
}
};
ActionListener refreshListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Refresh...");
}
};
ActionListener settingsListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Settings...");
}
};
ActionListener exitListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Exiting...");
System.exit(0);
}
};
PopupMenu popup = new PopupMenu();
MenuItem refreshItem = new MenuItem("Refresh");
MenuItem settingsItem = new MenuItem("Einstellungen");
MenuItem exitItem = new MenuItem("Beenden");
refreshItem.addActionListener(refreshListener);
settingsItem.addActionListener(settingsListener);
exitItem.addActionListener(exitListener);
popup.add(refreshItem);
popup.addSeparator();
popup.add(settingsItem);
popup.addSeparator();
popup.add(exitItem);
trayIcon = new TrayIcon(image, "iFlört", popup);
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
seconds=seconds+1;
if(seconds == newRequest){
seconds = 0;
getInfo();
}
}
};
new Timer(delay, taskPerformer).start();
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
trayIcon.displayMessage("Action Event",
"An Action Event Has Been Performed!",
TrayIcon.MessageType.INFO);
}
};
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(actionListener);
trayIcon.addMouseListener(mouseListener);
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println("TrayIcon could not be added.");
}
} else {
// System Tray is not supported
}
Jetzt ist es aber so, dass ich den MenuItems gerne kleine Icons zuweisen möchte.
Das scheint aber im Java AWT nicht möglich sondern nur mit Swing.
Also Popup und MenuItem auf JPopup und JMenuItem umgestellt, jetzt mag das aber der Konstruktor TrayIcon in seinen Parametern nicht.
Ich hab nach ner Lösung für beides gegoogelt. Also MenuItem Icon, sowie Systemtray in Swing aber unter den Ergebnissen war nichts verwertbares.
Es meinte einmal jemand, mit setImage, aber ich denke er hat ein SmartAWT oder so ähnlich benutzt.
Besten Dank für Hilfe!
Grüße
Schönen Abend noch