Label umfärben

Status
Nicht offen für weitere Antworten.

Cinimod

Aktives Mitglied
Hallo!

Ich habe ein JLabel, welches mit java.awt.Container c = getContentPane().add(jLabel) in ein JFrame
geaddet ist. Wenn ich jetzt auf diese JLabel klicke, erscheint ein Popup Menu und ich kann von
einem JMenuItem - hier redItem - eine Farbe auswählen. Das redItem hat dabei einen roten
Hintergrund.
Folgender Code zeigt den wesentlichen Teil:

Code:
  else if(source == greenItem) { actualLabel.setBackground( ((JMenuItem)source).getBackground()); actualLabel.repaint();}

Jetzt bleibt das JLabel in seiner gewohnten Farbe bzw. nichts passiert. Es kann eigentlich nur an
repaint liegen, denke ich, aber ich weiss nicht warum!

Für Hilfe vielen Dank im voraus!
 

marsias

Aktives Mitglied
Hi!

Also hoffe ich hab es richtig verstanden.
Das Label ist grün und nach einem klick im
Menu soll es rot werden?

Wenn es so ist, ist doch dein code falsch:
Code:
else if(source == greenItem) {
    actualLabel.setBackground( ((JMenuItem) source).getBackground());
    actualLabel.repaint();
}

Wenn aktuelles grün, dann setzte hintergrund so wie mein aktuelles objekt...
also grün.

ich denke da ist der fehler. Wenn grün dann rot sollte stimmen.

mfg
 

Nobody

Top Contributor
der quelltext ist 2mal genau der selbe nur einmal ist er strukturiert geschrieben.

zum autor des threads: schreib deine quelltext so, ist zwar am anfang etwas schwer, aber es erleichtert die sache doch ungemein.


also wenn die farbe geändert wird, dann wird das objekt doch neu gezeichnet oder liege ich da falsch?
versuchs mal indem du es rausnimmst (zum testen reicht auskommentieren).
 

marsias

Aktives Mitglied
Hi!

ja der quelltext ist der selbe, habe nix an ihm geändert.
wollte den nur noch mal vor augen haben.
er muss einfach in der setBackground() methode das richtige
einfügen. wie sein programm weiter aufgebaut ist kann ich ja nicht
sagen.

mfg
 

Cinimod

Aktives Mitglied
Sorry für die falsche Formatierung. Zudem habe ich noch die falsche Zeile reinkopiert und noch etwas vergessen, wodurch etwas Verwirrung aufgekommen ist....nochmal:

Ein JLabel - actualLabel - ist zu einem java.awt.Container geaddet worden. Wenn ich jetzt auf diese JLabel klicke erscheint ein Popup
Menu mit verschiedenen JMenuItems, die mir verschiedene Farben zur Auswahl geben, z.B. greenItem.
Wenn ich jetzt auf dieses greenItem klicke, dessen Hintegrundfarbe grün ist, soll sich das actualLabel grün färben.
Zur Realisierung soll folgender Code dienen:


Code:
else if(source == greenItem)
    { 
      actualLabel.setBackground( ((JMenuItem) source).getBackground()); 
      actualLabel.repaint(); 
    }

Es kommt hinzu, dass die JLabels dynamisch auf die Oberfläche hinzugefügt werden, also noch gar nicht klar ist
wie viele JLabels es sein werden. Um das actualLabel zu bekommen, ist jedes hinzugefügte JLabel mit einem
MouseListener versehen, und wenn ich auf dieses JLabel klicke passiert folgendes:

actualLabel = jLabel; (jLabel, das JLabel auf welches geklickt wurde)

Dabei ist actualLabel global definiert.

Ich hoffe, das reicht für das allgemeine Verständnis aus :)

Danke im voraus für Antworten!
 

marsias

Aktives Mitglied
Hi!

jede Komponente hat ja eine validate() methode probier es mal damit aus.
Schau dir mal auch die SwingUtilities klasse an. kann vielleicht hilfreich sein.

mfg
 

Cinimod

Aktives Mitglied
Irgendwie sitze ich auf dieser Angelegenheit fest.
Hier eine kleine Testklasse, die das Problem ein wenig stärker verdeutlichen soll.
Komischerweise lässt sich nicht einmal das JLabel im Konstruktor blau färben.

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Test extends JFrame implements ActionListener
{
	private JLabel actualLabel;
	private JLabel label1;
	private JPopupMenu popup;
	private JMenuItem redItem;

	public Test()
	 {

	  popup = new JPopupMenu();
          redItem = new JMenuItem("Rot");
         redItem.setBackground(Color.red);  
         redItem.addActionListener(this);
         popup.add(redItem);

	   label1 = new JLabel("Label 1");
	   label1.setBackground(Color.blue); //blau färben!
	   label1.setBorder(BorderFactory.createLineBorder(Color.black));
	   label1.addMouseListener(new MouseAdapter()
	    {
	      public void mouseClicked(MouseEvent me)
	       {
			JLabel source = (JLabel) me.getSource();
	        popup.show(source, me.getX(), me.getY());
	 	   }
	     });

            this.getContentPane().add(label1);
	    setSize(300, 300);
	    setVisible(true);
       }

    public void actionPerformed(ActionEvent ae)
     {
         JMenuItem source = (JMenuItem) ae.getSource();

		if(source == redItem)
		 {
		   JLabel invoker = (JLabel) popup.getInvoker();
		   invoker.setBackground(source.getBackground());
		   invoker.validate(); //hier sollte es sich umfärben.
	     }
	  }

  public static void main(String args[])
   {
	 new Test();
   }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
izoards Ausdruck auf Label Drucker AWT, Swing, JavaFX & SWT 1
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
N javafx Position der Bustaben finden label AWT, Swing, JavaFX & SWT 1
N Label Schriftart Ändern javafx AWT, Swing, JavaFX & SWT 2
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
I BoxLayout zentriert Label nicht AWT, Swing, JavaFX & SWT 7
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
R JavaFX Label oder Imageview anzeigen mit Buttonklick AWT, Swing, JavaFX & SWT 4
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
A Inhalt wechseln bei Klick auf Label AWT, Swing, JavaFX & SWT 8
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
Trèfle JavaFX Formattierung im Label AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
F Countdown in Label anzeigen AWT, Swing, JavaFX & SWT 14
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
J Dateiname im Label einblenden AWT, Swing, JavaFX & SWT 4
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
T JavaFX Label mit mehreren Images AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
L JavaFX ContextMenu bei Label mit Linksklick AWT, Swing, JavaFX & SWT 4
J JavaFX - Felder (Label) in einer ForSchleife bearbeiten AWT, Swing, JavaFX & SWT 4
N Anordnung der Label AWT, Swing, JavaFX & SWT 3
N Swing Label auf Panel legen.. AWT, Swing, JavaFX & SWT 2
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
R Swing JLabel berührung an einem anderen Label prüfen AWT, Swing, JavaFX & SWT 3
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
T CSS Rechtsbüdniges Label mit Zwei Zeilen AWT, Swing, JavaFX & SWT 7
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
Augenblau JavaFX Wechselnde Werte in Label darstellen AWT, Swing, JavaFX & SWT 7
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
M label mit icon verschieben. AWT, Swing, JavaFX & SWT 1
B Swing JXMapKit Mausemove in Label anzeigen AWT, Swing, JavaFX & SWT 0
K Bild in Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
G Label wird nicht erstellt AWT, Swing, JavaFX & SWT 0
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
G Label erstellen AWT, Swing, JavaFX & SWT 6
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
F JavaFX label.getWidth() AWT, Swing, JavaFX & SWT 2
T Swing Label aus anderer Methode bearbeiten AWT, Swing, JavaFX & SWT 2
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
R JavaFX Label ändern in aufgerufener AnchorPane AWT, Swing, JavaFX & SWT 3
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
G JavaFX CSS: Label in GridPane rechts ausrichten AWT, Swing, JavaFX & SWT 9
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
KrokoDiehl Swing Buchstaben im Label anders färben AWT, Swing, JavaFX & SWT 4
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
P Label rotieren mit Timer AWT, Swing, JavaFX & SWT 5
C Label wird nicht an der richtigen Position angezeigt.. AWT, Swing, JavaFX & SWT 7
H Label mit Icon positionieren AWT, Swing, JavaFX & SWT 14
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
T label überschriebt seine werte-SWT AWT, Swing, JavaFX & SWT 3
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
N Label auf Hauptfenster manipulieren AWT, Swing, JavaFX & SWT 2
S VAADIN: Problem mit Label AWT, Swing, JavaFX & SWT 18
P Ausgabe Label AWT, Swing, JavaFX & SWT 6
GUI-Programmer Informations-Panel an Label AWT, Swing, JavaFX & SWT 2
S ImageIcon von Label entfernen AWT, Swing, JavaFX & SWT 9
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A Bekomme das Label nicht in die Mitte von Reihe AWT, Swing, JavaFX & SWT 7
H SWT Markierbares Label AWT, Swing, JavaFX & SWT 8
A Swing Box Label ausrichten AWT, Swing, JavaFX & SWT 3
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
A TextField und Label AWT, Swing, JavaFX & SWT 8
L Label dynamisch awt AWT, Swing, JavaFX & SWT 2
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B Die Werte von getLocation() im Label anzeigen AWT, Swing, JavaFX & SWT 4
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
A SWT - Farbe von Text auf Label ändern AWT, Swing, JavaFX & SWT 2
M gridbaglayout - abstand bei label und field AWT, Swing, JavaFX & SWT 8
hdi SWT Label Text vertikal zentrieren AWT, Swing, JavaFX & SWT 6
T In einem Label scrollen AWT, Swing, JavaFX & SWT 3
Spot84 swt label zeilenumbruch will nicht funktionieren AWT, Swing, JavaFX & SWT 1
L JFreeChar Label für StackedBar AWT, Swing, JavaFX & SWT 3
lumo SWT Label - onResize? AWT, Swing, JavaFX & SWT 5
DasDogma AWT Problem bei Wertzuweisung für Label AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben