JLabel.setBackground(Color c)

Heute habe ich einige Zeit mit einem sehr dummen Fehler verbracht. Und zwar wollte ich in einer Swing GUI ein JLabel mit einer bestimmten Farbe einfärben. Keine große Sache dachte ich mir. Das Label erstellt und mit der Funktion setBackground die Hintergrundfarbe gesetzt. Jedoch passierte nichts! Die Farbe ließ sich nicht ändern und so hatte das Label immer die Hintergrundfarbe des darunterliegenden Panels. Nach einigen Minuten Recherche im www, landete ich in der Bug Database von Sun. Dort wird ein Bug mit der Description “The setBackground method in JLabel does not seem to be working” geführt. Die Ursache und die Lösung des Problems war dann simple. Die Eigenschaft ‘opaque’ ist bei JLable per default auf false gesetzt. Dadurch werden gesetzte Hintergrundfarben ignoriert und das Label erschein als transparent. Wird per setOpaque(true) die Eigenschaft auf true gesetzt, wird auch der Hintergrund gezeichnet.

Ein kurzes Beispiel:

import javax.swing.*;

public class BackgroundColorTest {

	public static void main(String args[]) {
		JFrame jF = new JFrame();
		JLabel label = new JLabel("a blue JLabel");

		Container conPane = frame.getContentPane();
		FlowLayout flowLayout = new FlowLayout();
		conPane.setLayout(flowLayout);

		label.setOpaque(true);
		label.setBackground(Color.blue);
		conPane.add(label);
		jF.setSize(350, 250);
		jF.setVisible(true);
	}
}

e-Books 4 Java

Das Angebot an e-Books wächst rasant. So gibt es inzwischen auf für Java-Entwickler und solche die es noch werden wollen einige sehr gute Bücher als e-Books. Das tolle daran, die Bücher sind völlig Kostenlos verfügbar.

  • “Go To Java 2″: schon etwas ältern; wird zum Beispiel von der TU-Wien gehostet (zum Buch)
  • “Java ist auch eine Insel”: topaktuelles Buch der Spitzenklasse; wird direkt vom Verlag angeboten (zum Buch)
  • “Handbuch der Java-Programmierung”: Nachfolger von “Go To Java” und mein persönliches Lieblingsbuch (zum Buch)
  • “Thinking in Java 1 & 2″:  diese und andere Thinking-In-Bücher sind ebenfalls kostenlos erhältlich (zu den Büchern)

Die ersten drei Bücher sind auf deutsch. Die Thinking-In-Bücher auf englisch. “Go To Java” und die Thinking-In Bücher sind schon etwas älter und nicht mehr auf dem neusten Stand. Bei “Java ist auch eine Insel” und das “Handbuch der Java-Programmierung” handelt es sich top aktuelle Bücher. Beide sind sehr gut und verständlich geschrieben und beinhalten auch viele Beispiele, sodass auch Anfänger recht schnell zurecht kommen.