Tray Icon

Marshallbbw

Erfahrenes Mitglied
Hallo,

ich versuche ein einfaches Tray Icon zu realisieren. Habe dazu nichts brauchbares an Informationen gefunden. Der Beitrag http://www.tutorials.de/tutorials129935.html&highlight=tray+icon hat mir leider nicht weiter geholfen. Verstehe ich es richtig das entsprechende TrayIcon-Klassen nur kostenpflichtig zu erwerben sind und keine Standard-Klassen offiziell frei zur Verfügung stehen.
Ich hoffe ihr könnt Licht in mein Dunkel bringen - vielen Dank.
 
Danke für den Link - hab das mal ausgeführt und das Ergebnis ist toll - genau so etwas will ich auch realisieren. Problem ist nur ich seh ja in keinster Weise wie das funktioniert. Hab auch ein paar Beispielscripte gefunden - aber die klappen auch nicht. Ich kann ja nicht mal bswp. java.awt.SystemTray nutzen. Ich versteh das nicht. Anscheinend stell ich mich zu dumm an.
 
Hallo Marcel,

die Dateien jdic.jar und jdicstub.jar musst du deinem Projekt hinzufügen. Wenn du Windows benutzt die Dateien jdic.dll und tray.dll in den Ordner kopieren wo deine Classdateien sind. Wenn du das gemacht hast, probier die Beispielscripte nochmals. Wenns nicht klappt frag noch mal nach.

Vg Erdal
 
Ich benutze WinXP. Am liebsten wäre mir jedoch wenn das TrayIcon-Script natürlich auf sämtlichen Plattformen läuft. Könntest du mir mal ein kleines Beispielscript für ein Tray Icon zeigen. hab selber hab einige gefunden, aber die scheinen nicht so richitg zu sein. Meistens sind da Packages eingebunden, die ich nicht habe, jedoch wichtig zu sein scheinen. Ausserdem stresst der Complier immer wegen SystemTray rum. Ich versteh die Welt nicht mehr. Übrigens Danke für deine Hilfe.
 
Guten Morgen Marcel,

entpacke die Zipdatei. Dann entdecktst du im Ordner eine Datei namens jdic.jar und im Ordner windows nochmals eine jdic_stub.jar. Kopiere diese in den Ordner, zu deinen class Dateien. Diese Jar - Dateien solltest du in deiner Java-IDE als externe Bibliothek hinzufügen. In dem Ordner windows befindet sich ein weiterer Ordner namens x86. Da findest du tray.dll und jdic.dll. Diese gehören auch in dein Programm Ordner.

Hier nun ein Beispiel:

Code:
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;

import org.jdesktop.jdic.tray.SystemTray;
import org.jdesktop.jdic.tray.TrayIcon;

public class TrayExample {

	Icon icon = new ImageIcon(TrayExample.class.getResource("bild.gif"));

	Toolkit tk = Toolkit.getDefaultToolkit();

	JFrame frame = new JFrame();

	JPopupMenu menu = new JPopupMenu();

	JMenuItem one = new JMenuItem("Beep");

	JMenuItem two = new JMenuItem("Öffne Webbrowser");

	JMenuItem exit = new JMenuItem("Schließen");

	TrayIcon tray = new TrayIcon(icon, "Titel", menu);

	public TrayExample() {

		menu.add(one);
		menu.add(two);
		menu.addSeparator();
		menu.add(exit);

		one.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				tk.beep();
			}
		});
		two.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					Runtime.getRuntime().exec(
							"rundll32 url.dll,FileProtocolHandler "
									+ "www.google.de");
				} catch (IOException e1) {
				}
			}
		});
		exit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		ActionListener klick = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(frame, "Willkommen");
			}
		};
		tray.addActionListener(klick);
	}

	public void show() {
		SystemTray.getDefaultSystemTray().addTrayIcon(tray);
	}

	public void hide() {
		SystemTray.getDefaultSystemTray().removeTrayIcon(tray);
	}

	public static void main(String[] args) {
		TrayExample test = new TrayExample();
		test.show();
	}
}

Vg Erdal
 
Noch ne doofe Frage - wie kann ich die Jar-Dateien als externe Bibliothek hinzufügen. Ich benutze den Standard-Java-Editor. Kann diese Option aber nicht finden.
 
Zurück