Icon-Transparenz im Systemtray

January

Mitglied
Hallo zusammen.

Da googlen nicht geholfen hat, versuche ich es mal wieder bei euch:
Ich möchte ein Icon (UhrGruen24x24.png) in meine Trayleiste bringen. Das klappt ganz gut, mein Problem ist, dass die Transparenz des Icons verloren geht. Es wird immer grau hinterlegt. Es liegt nicht am png, das z.B auf dem Desktop korrekt angezeigt wird. Habe es auch mit diversen anderen png-(und gif-) Dateien versucht, z.B. mit meinem Dropbox-Icon, dass durch Dropbox selbst korrekt transparent angezeigt wird, in meinem Code eingebaut aber ebenfalls grau hinterlegt wird. Hat irgendjemand eine Idee woran das liegen könnte?
Ich benutze Eclipse SDK 3.5.2 unter Ubuntu 10.10 mit Gnome 2.32.

Vielen Dank schon im Voraus******
January

Java:
package gui.tray;

import java.awt.Image;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;

import javax.swing.JOptionPane;


public class SystemTrayIcon {
	static SystemTray trayLeiste;
	static TrayIcon myTrayIcon;
	public SystemTrayIcon(){
		
			iconSetzen();
			
	}

	private void iconSetzen() {
		try {
			Image iconGruen = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/icons/UhrGruen24x24.png"));
			myTrayIcon = new TrayIcon(iconGruen);
			myTrayIcon.setImageAutoSize(true);
			trayLeiste = SystemTray.getSystemTray();
			trayLeiste.add(myTrayIcon);
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "Probleme beim Setzen des SystemIcons! ("
					+ this.getClass().getName() + ")", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
			e.printStackTrace();
		}
	}
}
 
Howdie.

SystemTray-Icons hab ich noch nie unter einer Linuxdistribution getestet, nur unter Windows. Da hat es allerdings immer funktioniert und nichts grau hinterlegt.

Ich würde mal testen, ob das an der Image-Klasse liegt, z.B. in dem du dir das Icon mal auf eine Oberfläche zeichnest oder über ImageIO auf die Platte speicherst. Dann siehst du, ob der Hintergrund hier schon hinterlegt wird oder erst im Tray.

Ansonsten macht Ubuntu vielleicht nen Strich durch die Rechnung... Entweder funktioniert die Kommunikation zwischen Java und System nicht oder Ubuntu kann vielleicht nicht PNGs umgehen. Schon mal unter Windows getestet?

Gruß
miffi
 
Hallo miffi.

Danke für die Antwort. Unter Windows habe ich das Problem in der Tat nicht.
Ansonsten funktioniert die Transparenz im Java-Programm (Knöpfe, Menüleisten, etc. ) mit den png-Bildern unter Ubuntu.
Hat noch jemand eine Idee wie man das lösen kann? Die Symbole anderer Programme in der Taskleiste können ja auch entsprechend dargestellt werden...

Danke, January
 
Hiho.

Ich hab gar nicht mitbekommen, dass hier nochmal was gepostet wurde - hab keine Mail von tutorials.de bekommen...

Wie die Links von genodeftest zeigen, hat Ubuntu wohl Probleme mit PNGs. Hast du mal versucht, stattdessen ein transparentes GIF zu verwenden? Die Qualität ist zwar nicht vergleichbar, aber je nach Symbol könnte es ja ausreichen. Ich hab zumindet schon mal ein GIF verwendet - allerdings mit sehr minimalistischem Symbol. Mit Bild-Formaten kenne ich mich nicht besonders gut aus, vielleicht gibts ja noch andere, bessere Möglichkeiten. Hat Linux z.B. spezielle Symbol-Dateitypen? Oder gibt es noch mehr Formate mit transparentem Hintergrund?
Leider kann ich dir hier auch nicht wirklich weiterhelfen... Mit meiner üblichen Kombo Windows/PNG hab ich nie solche Probleme gehabt.

Gruß
miffi
 
Hallo.
@genodeftest: Danke für die Links, hab die Antwort erst jetzt gelesen. War wohl gerade am Verfassen von Beitrag #4 als die kam.
@miffi: Mit gif habe ich es auch schon versucht, leider ohne Erfolg. Wenn ich noch die Lösung finde werde ich sie hier posten....

Danke und Gruß,
January
 

Neue Beiträge

Zurück