JLabel Text-Änderung wird nicht angezeigt

Status
Nicht offen für weitere Antworten.
Ich habe einen kleinen Dialog, womit man Daten in einer Datenbank speichern kann.
Nun soll aber wenn man auf speichern klickt ein neuer Dialog angezeigt werden, oder das JLabel den Text ändern - auf jeden Fall soll etwas passieren, damit der Benutzer sieht das gespeichert wird.

Ich habe es unter anderem so probiert:
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jLabel1.setText("Saving...");
        save();
        this.dispose();
    }
Also der Text soll geändert werden, dann soll gespeichert und anschließend der Dialog automatisch geschlossen werden.
Nur das der Text zwar geändert, aber nicht neu gezeichnet wird....
Habe es auch schon mit repaint() nach dem Text ändern versucht, aber ohne Erfolg....

Any ideas?
 
S

SlaterB

Gast
schreibe
System.out.println("huhu");
mit rein, um zu prüfen, ob der Code ausgeführt wird,

ein typischer Fehler bei sowas ist, dass jLabel1 ein anderes Label ist als in der GUI enthalten,
z.B. wenn im Konstruktor der GUI ein zweites JLabel mit gleichen Variablennamen gepostet wird,


poste mehr Code,
alle Zeilen, die mit jLabel1 zu tun haben, Übergabe an den Dialog usw
am besten ein vollständiges Programm < 100 Zeilen

übe das ganze evtl. erstmal mit einem Button in der HauptGUI, nicht in einem separaten Dialog..
 

babuschka

Top Contributor
Hört sich auch für mich stark nach einem Thread-Problem an. Das Label ändert sich erst, nachdem save() ausgeführt wurde, oder?

Falls das das Problem ist, lässt sich das gut mit einem SwingWorker erledigen:

deine Methode:
Code:
//...

EineKlasse ek = new EineKlasse () ;   //eine von SwingWorker abgeleitete Klasse
ek.execute() ;     //Hier wird deine Methode save() ausgeführt

label.setText("Saving...")   //Hier benennst du dein Label um, weis nicht ob ich die richtige Methode erwischt habe

//...


Eine Klasse, die du als innere Klasse in deinem Dialog realisieren kannst
Code:
EineKlasse extends SwingWorker
{
     @Override
     //in diese Methode soll deine länger andauernde Methode rein (save())
     public String doInBackground()
     {
          //Hier rein
          save();
     }

     @Override
     protected void done()
     {
          //Hier alles rein, was NACH doInBackground ausgeführt werden soll
          dispose();
     }
}

Das ist nur ein Muster, nagelt mich nicht fest, weis auch nicht, on die Methoden jetzt so passen.
Hab das selbst erst erklärt bekommen, also verbessert mich, wo ich falsch liege!
 

JPKI

Top Contributor
Da ist doch folgendes einfacher:
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jLabel1.setText("Saving...");
        new Thread(new Runnable() { public void run() { save(); }}).start();
        this.dispose();
    }
 
JPKI hat gesagt.:
Da ist doch folgendes einfacher:
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jLabel1.setText("Saving...");
        new Thread(new Runnable() { public void run() { save(); }}).start();
        this.dispose();
    }

Erstmal sorry das ich mich erst jetzt wieder melde...
Habe den Code jetzt mal ausprobiert und dabei passiert etwas komisches - und zwar verschwindet mein Dialog jetzt sofort, so als würde er direkt das Dispose() ausführen, er scheint aber trotzdem das speichern ebenfalls auszuführen.
Wie kann ich mir das erklären, das es plötzlich so schnell geht, das die Daten gespeichert werden, wo das sonst doch immer eine merkbaren Moment dauerte?
 
S

SlaterB

Gast
das sind Threads, das heißt:
mache save() nebenbei + führe den normalen Programmablauf sofort (gleichzeitig) weiter,
also direkter Sprung zu dispose()


wenn du zu Hause vom Sessel den Fernseher einschaltest,
musst du ja auch nicht bis zum Sendeschluss warten,
bis du die Fernbedienung wieder hinlegen darfst ;)
 

JPKI

Top Contributor
Oh, Verzeihung, das kommt davon, wenn man müde von ner zweitägigen Party kommt und meint, man könnte noch'n paar konstruktive Beiträge posten :wink: .

Der Vorschlag mit SwingWorker von berndmarguard hört sich ganz gut an, probier den mal
aus.
 
@SlaterB: Danke, jetzt ist mir auch klar was da läuft. *gg*
@JPKI: Ich werde diese Lösung erstmal meinem Chef zeigen - wenn der sagt das ist okay so, dann lasse ich das - ansonsten kann ich die andere Lösung immer noch ausprobieren.
Werde mich aber sicherheitshalber mal damit befassen, was ein "SwingWorker" überhaupt ist. :)

Nochmal vielen Dank an alle für die Hilfe.

P.S.:
Kann es sein das ich für den SwingWorker unter NetBeans zusätzlich was downloaden muss, denn mir wird von NetBeans nur folgendes SwingWorker-Paket angeboten:
Code:
import EDU.oswego.cs.dl.util.concurrent.misc.SwingWorker;
Und da kennt der dann keine Methode execute().
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
S Text in einem JLabel nur zum Teil Fett Java Basics - Anfänger-Themen 2
B JLabel Text Formatierung Java Basics - Anfänger-Themen 5
SexyPenny90 JLabel Text und Icon untereinander verwenden Java Basics - Anfänger-Themen 3
T JLabel mit Text und Bild Java Basics - Anfänger-Themen 3
D [JLabel] bild mit text? Java Basics - Anfänger-Themen 8
M JLabel-Text in anderem Tab ändern Java Basics - Anfänger-Themen 5
G JLabel - Icon und Text untereinander anordnen? Java Basics - Anfänger-Themen 2
S Text in einem JLabel Java Basics - Anfänger-Themen 3
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
Tom/S JLabel Icon Farbe Java Basics - Anfänger-Themen 2
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
S Kontrollieren, ob ein Jlabel nicht sichtbar ist Java Basics - Anfänger-Themen 6
S Input/Output JLabel verschieben Java Basics - Anfänger-Themen 7
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
CptK Methoden JLabel erstellen & verschieben Java Basics - Anfänger-Themen 1
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
CptK JLabel im Array Java Basics - Anfänger-Themen 2
L Threads Mit Threads JLabel ändern! Java Basics - Anfänger-Themen 2
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
P Auf JLabel zugreifen Java Basics - Anfänger-Themen 12
P Erste Schritte JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 4
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
M Vererbung Ein JLabel einer Elternklasse anzeigen Java Basics - Anfänger-Themen 8
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
J Array in JLabel ausgeben Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
snipesss [Java] Schriftart und Schriftgröße von JLabel in einer Zeile festlegen? Java Basics - Anfänger-Themen 3
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
S JLabel sichtbar machen/GUI Java Basics - Anfänger-Themen 3
WetWer Animation JLabel Java Basics - Anfänger-Themen 2
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
L Variable für JLabel wird nicht erzeugt Java Basics - Anfänger-Themen 6
T Objekt in ein JLabel der GUI übergeben Java Basics - Anfänger-Themen 3
S JLabel an Methode übergeben Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
M Fangspiel-Probleme (JLabel, Objekt zurücksetzen) Java Basics - Anfänger-Themen 3
C Rechenaufgabe im JLabel ausrechnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
Z JLabel Icon ändern Java Basics - Anfänger-Themen 2
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
G drawString/ JLabel updaten Java Basics - Anfänger-Themen 1
G mouseDragged auf Jlabel Java Basics - Anfänger-Themen 2
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
M Frage zu JLabel Java Basics - Anfänger-Themen 5
T JLabel-Bilderpfad ändern... Java Basics - Anfänger-Themen 2
T JLabel anzeigen lassen... Java Basics - Anfänger-Themen 6
T Mein String in ein JLabel stecken Java Basics - Anfänger-Themen 2
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
T JLabel zum klicken... Java Basics - Anfänger-Themen 15
W Datentypen String-Ausgabe in jLabel Java Basics - Anfänger-Themen 14
J JLabel Ausgabe Java Basics - Anfänger-Themen 3
B mouseClicked JLabel Array mitteilen Java Basics - Anfänger-Themen 6
L JLabel Icon Größe anpassen Java Basics - Anfänger-Themen 11
A Zeilenumbruch im Jlabel Java Basics - Anfänger-Themen 11
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
G GUI JLabel ersetzen Java Basics - Anfänger-Themen 3
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
A Bildgröße automatisch auf JLabel Größe konvertieren Java Basics - Anfänger-Themen 9
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
S NullPointerException bei zweidimensionalem JLabel-Array Java Basics - Anfänger-Themen 4
T JLabel richtig anordnen? wie gehts? Java Basics - Anfänger-Themen 9
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
B JLabel löschen/überschreiben Java Basics - Anfänger-Themen 10
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
A JLabel erst auf null dann auf einen Wert setzen Java Basics - Anfänger-Themen 7
F JLabel-Background Java Basics - Anfänger-Themen 7
T JLabel Farbe ändern, Problem Java Basics - Anfänger-Themen 2
C JLabel markieren Java Basics - Anfänger-Themen 2
M BeanBinding Jlist an Jlabel Java Basics - Anfänger-Themen 2
M OOP JLabel werden nicht korrekt eingefärbt Java Basics - Anfänger-Themen 6
P JLabel prüfen,... Java Basics - Anfänger-Themen 6
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
P JLabel auf JFrame - Schrift vergrößern Java Basics - Anfänger-Themen 2
Z Fonts in einem JLabel Java Basics - Anfänger-Themen 7
MonsterBit setText bei JLabel Java Basics - Anfänger-Themen 16
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
M JLabel attribut wert zuweisen Java Basics - Anfänger-Themen 2
E JLabel deaktivieren ohne Veränderung der Darstellung Java Basics - Anfänger-Themen 2
0 Icon in JLabel Java Basics - Anfänger-Themen 6
JAVAnnik variable erhöhen bei Klick auf JLabel Java Basics - Anfänger-Themen 3
T JLabel wird nicht gesetzt in Schleife Java Basics - Anfänger-Themen 9
T aus stateChanged ein JLabel adden Java Basics - Anfänger-Themen 6
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben