Warum nehmen diese Labels die Hintergrundfarbe nicht an?

Status
Nicht offen für weitere Antworten.

Tobias

Top Contributor
Hallo,

beim Rumspielen mit dem BoxLayout bin ich in einem Testprogramm auf ein merkwürdiges Verhalten gestoßen - die Labels, die ich als Testobjekte auf meinem Panel verteile, nehmen die Hintergrundfarbe nicht an - aber ich habe eine ganze Reihe anderer Programme gesehen, bei denen das genau so funktioniert?

Hier der Code der Label-Generierung:

Code:
private JLabel createLabel(int width, int height, Color color) {
		JLabel l = new JLabel("Hallo");
		
		Dimension size = new Dimension(width, height);
		l.setMinimumSize(size);
		l.setMaximumSize(size);
		l.setPreferredSize(size);
		
		// l.setBackground(color);
                l.setBackground(Color.BLUE);
		l.setForeground(Color.ORANGE);
		
		return l;
	}

Die auskommentierte Ziele ist die, die ich eigentlich verwenden wollte, die Zeile darunter habe ich nur zu Testzwecken hinzugefügt. Das Ergebnis ist beide Male dasselbe: Der Text wird Orange auf grauem Hintergrund dargestellt.

Übersehe ich irgendwas (nehme ich eigentlich an) oder stimmt hier was nicht?

mpG
Tobias
 

Tobias

Top Contributor
Und hier noch der komplette Code für alle, die sich das mal anschauen wollen:

Code:
/**
 * This test checks what happens if the boxlayout's axis-attribute is changed
 * during runtime.
 *
 * @author Tobias Demuth &mailto:myself@tobiasdemuth.de&
 */
public class BoxLayoutTest extends JFrame {
	
	private JPanel p;
	
	private int axis;
	
	public BoxLayoutTest() {
		super("BoxLayoutTest");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		getContentPane().setLayout(new BorderLayout());
		
		p = new JPanel();
		p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
		axis = BoxLayout.PAGE_AXIS;
		
		p.add(Box.createGlue());
		p.add(createLabel(50, 30, Color.BLUE));
		p.add(createLabel(50, 50, Color.YELLOW));
		p.add(createLabel(10, 80, Color.ORANGE));
		p.add(Box.createGlue());
		
		getContentPane().add(p, BorderLayout.CENTER);
		
		JPanel control = new JPanel();
		control.setLayout(new BoxLayout(control, BoxLayout.LINE_AXIS));
		
		control.add(Box.createGlue());
		control.add(createButton("Switch AXIS", 
								 new ActionListener() {
								 	public void actionPerformed(ActionEvent e) {
								 		if(axis == BoxLayout.PAGE_AXIS) {
								 			axis = BoxLayout.LINE_AXIS;
								 			p.setLayout(new BoxLayout(p, axis));
								 		}
								 		else {
								 			axis = BoxLayout.PAGE_AXIS;
								 			p.setLayout(new BoxLayout(p, axis));
								 		}
								 		p.validate();
								 	}
								 }));
		
		getContentPane().add(control, BorderLayout.SOUTH);
		
		pack();
		setVisible(true);
	}
	
	private JLabel createLabel(int width, int height, Color color) {
		JLabel l = new JLabel("Hallo");
		
		Dimension size = new Dimension(width, height);
		l.setMinimumSize(size);
		l.setMaximumSize(size);
		l.setPreferredSize(size);
		
                // l.setBackground(color);
		l.setBackground(Color.BLUE);
		l.setForeground(Color.ORANGE);
		
		return l;
	}
	
	private JButton createButton(String title, ActionListener l) {
		JButton button = new JButton(title);
		button.addActionListener(l);
		
		return button;
	}
	
	public static void main(String[] args) {
		new BoxLayoutTest();
	}

}

mpG
Tobias
 

mikachu

Top Contributor
..was sagt denn die JavaDoc dazu ?
setBackgroud( Color color );
Sets the background color of this component. The background color is used only if the component is opaque, and only by subclasses of JComponent or ComponentUI implementations. Direct subclasses of JComponent must override paintComponent to honor this property.

It is up to the look and feel to honor this property, some may choose to ignore it.

See Also:
java.awt.Component.getBackground
setOpaque
Parameters:
bg the desired background Color


#edit 1:
versuchs mal mit
Code:
l.setOpaque( true );
vor setBackground()
 

Tobias

Top Contributor
Mh *grummel*, was nützen den JLabels ohne die passende Hintergrundfarbe? *grummel*...

Naja, danke für die schnelle, kompetente Antwort!

mpG
Tobias

#edit 1:
Juchu, so geht's! Danke, mika!
 

mikachu

Top Contributor
was hast du jez gemacht ?
gehts ?

ps: ich hab das noch nie getestet, und würde mal wissen, ob das geht?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Swing JTextField aus dem Editmodus nehmen AWT, Swing, JavaFX & SWT 1
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
G Woher die swt-pi.jar nehmen? (UnsatisfiedLinkError) AWT, Swing, JavaFX & SWT 7
M SWT: swt-pi-gtk-3139 in java.library.path (Woher nehmen?) AWT, Swing, JavaFX & SWT 3
D JButton und JTextArea nehmen die Größe nicht an AWT, Swing, JavaFX & SWT 2
J Was nehmen? AWT, Swing, JavaFX & SWT 7
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
RalleYTN JavaFX Wie zur Hölle deaktiviere ich diese verdammte Debugging Console AWT, Swing, JavaFX & SWT 0
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
A AWT Nach dem generieren von bildern verschwinden diese wieder AWT, Swing, JavaFX & SWT 9
B Standard Icons wo findet man diese? AWT, Swing, JavaFX & SWT 20
G Gibt es diese Komponente? AWT, Swing, JavaFX & SWT 11
F Rechte Maustaste auf TreeNode soll den Fokus auf diese setzen AWT, Swing, JavaFX & SWT 6
X JFrames auf Bildschirmgröße maximieren. Ohne diese Symbolleiste AWT, Swing, JavaFX & SWT 4
G Kann mir jemand diese Exception erklaeren? AWT, Swing, JavaFX & SWT 8
G Kennt jemand diese Komponente? AWT, Swing, JavaFX & SWT 2
L wie kann ich diese Oberfläche bauen ohne das gestreckt wird? AWT, Swing, JavaFX & SWT 18
I Drag & Drop - kriegt Swing diese Aufgabe hin? AWT, Swing, JavaFX & SWT 5
B Wie heißt diese Klasse? AWT, Swing, JavaFX & SWT 2
C Wie heissen diese Dinge auf Java API? AWT, Swing, JavaFX & SWT 2
M Wie machen die diese GUIs? AWT, Swing, JavaFX & SWT 2
M JavaFX Abstand zwischen AnchorPane und Labels in dem HBox halten AWT, Swing, JavaFX & SWT 1
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
S Labels abfragen AWT, Swing, JavaFX & SWT 6
S Labels in Panel erstellen AWT, Swing, JavaFX & SWT 1
K Swing labels anpassen AWT, Swing, JavaFX & SWT 1
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
M Gui-Form alle Labels anzeigen AWT, Swing, JavaFX & SWT 4
Z Window Builder - Labels mit setText befüllen AWT, Swing, JavaFX & SWT 11
X Swing Per Button die Labels und Textfelder auslesen AWT, Swing, JavaFX & SWT 8
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
C ImageIcon eines Labels auf einem Panel in neuem Fenster anzeigen AWT, Swing, JavaFX & SWT 2
K Hilfe bei Labels AWT, Swing, JavaFX & SWT 3
K richtiges Ausrichten mehrerer Labels AWT, Swing, JavaFX & SWT 3
R Größe eines Labels bei GridBagLayout festlegen AWT, Swing, JavaFX & SWT 9
alex_fairytail LayoutManager NullLayout überlappende Labels werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Swing Positionierung eines Labels in einem Panel AWT, Swing, JavaFX & SWT 2
E Swing Drag n Drop Verschieben von Labels o.ä. AWT, Swing, JavaFX & SWT 10
A Swing JFrame vergrößert sich immer bei setText() eines Labels AWT, Swing, JavaFX & SWT 3
D LayoutManager GridLayout, 2 labels nebeneinander AWT, Swing, JavaFX & SWT 8
B bin am verzweifeln, will auf knopfdruck durch ne überprüfung die labels unsichtbar machen AWT, Swing, JavaFX & SWT 2
K Swing Labels & Buttons auf Frame AWT, Swing, JavaFX & SWT 8
D Swing update eines Labels nicht sichtbar AWT, Swing, JavaFX & SWT 9
M AWT TextFelder und Labels nicht ausgerichtet AWT, Swing, JavaFX & SWT 6
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
L Labels sichtbar - JFreeChart AWT, Swing, JavaFX & SWT 5
N Formular mit GridBaglayout und Abstände von Labels AWT, Swing, JavaFX & SWT 2
M Labels in ScrollPane mit Linie verbinden AWT, Swing, JavaFX & SWT 2
P SWT Composite und viele Labels AWT, Swing, JavaFX & SWT 10
G Frage zu Labels mit html AWT, Swing, JavaFX & SWT 3
S Labels und Button übereinander --> Reihenfolge? AWT, Swing, JavaFX & SWT 4
G Text eines Labels verändern? AWT, Swing, JavaFX & SWT 4
G Button vor Labels? AWT, Swing, JavaFX & SWT 5
H Labels mit setter-Methode modifizieren AWT, Swing, JavaFX & SWT 9
T Labels gleichzeitig bewegen und anklicken AWT, Swing, JavaFX & SWT 3
S Position von Labels, Buttons, etc. festsetzen und Scrollen AWT, Swing, JavaFX & SWT 4
A Zeichnen auf zwei Labels. Geht nit AWT, Swing, JavaFX & SWT 7
D Zurücksetzen des Labels funtioniert nicht AWT, Swing, JavaFX & SWT 6
Landei Labels in Box linksbündig ausrichten AWT, Swing, JavaFX & SWT 15
P Hintergrund eines Labels/Panels setzen AWT, Swing, JavaFX & SWT 3
G der sinn von labels/jlabels ? AWT, Swing, JavaFX & SWT 3
L Labels verschwinden! AWT, Swing, JavaFX & SWT 10
D JPanlels und Labels. AWT, Swing, JavaFX & SWT 7
T Labels verschieben / Flackern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben