# Tray Icon



## Marshallbbw (13. Januar 2006)

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.


----------



## Thomas Darimont (13. Januar 2006)

Hallo!

 Schau mal hier:
https://jdic.dev.java.net/

 Unter SWT gibts uebrigens auch eine TrayIcon Klasse 

 Gruss Tom


----------



## Marshallbbw (13. Januar 2006)

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.


----------



## flashray (13. Januar 2006)

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


----------



## Marshallbbw (14. Januar 2006)

Ich hab mir jetzt folgendes runtergeladen ( https://jdic.dev.java.net/files/documents/880/21614/jdic-20050930-bin-corss-platform.zip )- seh da aber nicht so richtig durch. Könntest du mir vielleicht einen Beispielordner posten. Ich hoffe das ist jetzt nicht zu dreist.


----------



## flashray (14. Januar 2006)

Hallo Marcel,

die Zipdatei ist schon richtig. Welches Betriebssystem verwendest du?

Vg Erdal


----------



## Marshallbbw (15. Januar 2006)

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.


----------



## flashray (15. Januar 2006)

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:


```
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


----------



## Marshallbbw (15. Januar 2006)

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.


----------



## flashray (15. Januar 2006)

Hallo Marcel,

ich kenne den Standart Java Editor nicht. Kannst du mir sagen wo ich den downloaden kann?

Vg Erdal


----------



## Marshallbbw (15. Januar 2006)

http://www.bildung.hessen.de/abereich/inform/skii/material/java/javaeditor.zip. Womit arbeitest du - Eclipse?


----------



## flashray (15. Januar 2006)

Also ich hab da auf die schnelle auch nichts gefunden. Eine Alternative wäre: Kopiere jdic.jar und jdic_stub.jar in den Ordner

C:\Programme\Java\jre1.5.0_04\lib\ext

oder

C:\Programme\Java\jdk1.5.0_04\jre\lib\ext

Mindestens einer davon müsste klappen. Beachte, das bei dir eventuell die java-Version anders ist und der Ordner ein wenig anders heißt.

Ja, ich benutze Eclipse.

Vg Erdal


----------



## Marshallbbw (15. Januar 2006)

Nee klappt leider auch nicht. Ich versuch mir jetzt erstmal Eclipse zu laden und einfach ein Projekt anzulegen, dem ich dann die Jar-Dateien als externe Bibliotheken hinzufüge. Ich denke mal das wird die schnelle Möglichkeit sein. Bei dir hat es ja geklappt. Ich melde mich aber auf jeden Fall nochmal.


----------



## flashray (15. Januar 2006)

ich habe bei mir in eclipse die beiden Dateien entfernt und diese in die angegeben Ordner kopiert. Es hat bei mir auch so funktioniert.
Was ist mit den Dateien tray.dll und jdic.dll befinden sie sich in dem gleichen Ordner wo deine class Dateien sind?

Vg Erdal


----------



## Marshallbbw (27. Januar 2006)

Hallo, 

also unter Eclipse funktioniert alles tadellos und recht einfach. Beim Standard Javaeditor bekomm ich das einfach nicht hin. Egal - vielen Dank an alle Beteiligten.


----------

