JLabel aktualisieren

Status
Nicht offen für weitere Antworten.

Dunedain

Mitglied
Hallo,

habe (mal wieder) ein "kleines" Problem:

Ich möchte nach einem Button Klick ein Label aktualisieren, einige andere Buttons sperren; dann den eigentlichen Arbeitsschritt ausführen und letzten Endes wieder die Buttons entsperren und das Label nochmal aktualisieren. Soviel zur Theorie, was ja eigentlich nicht allzu schwer sein sollte:

Um dies umzusetzten, verwende ich folgende Methoden:

Code:
    private void work(final String message)
    {
        labelActionValue.setText(message);
        processButtons(false);
        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    }
    private void done()
    {
        labelActionValue.setText("Keine");
        processButtons(true);
        setCursor(Cursor.getDefaultCursor());
    }    
    private void processButtons (boolean enable)
    {
        buttonCheck.setEnabled(enable);
        //...
    }

Ein Aufruf sähe dann wie folgt aus:

Code:
    private void executeClicked (java.awt.event.ActionEvent evt)                                
    {              
        if(tableResult.getSelectedRowCount() > 0)
        {       
            try
            {
                work("Alle markierten Zeilen checken");
                rm.checkSelected(getSelectedRows());
            }
            finally
            {
                done();
            }
        }
        else
        {
            MessageUtils.informationMessage(
                    "Diese Aufgabe kann nur ausgeführt werden, wenn wenigestens" +
                    " eine (oder mehrere) Zeile(n) markiert sind!",
                    "");
        }
    }


Leider hat sich in diesem Fall, außer der Änderung des Maus-Cursors nichts getan... Bin dann mal darauf gekommen, dass es (vermutlich) nie zum neuzeichnen kommt, weil die ausgeführte Methode zu "rechenintensiv" ist... (Iterieren über eine Tabelle mit 50.000+ Zeilen)

Hab dann den Code der Methode in ein Runnable ausgelagert und erstelle beim Aufruf der Methode einen Thread mit dem entsprechenden Runnable. Anschliessend starte ich den Thread und warte mittels join darauf, dass er "fertig" ist und verlasse die Methode wieder.

Aber auch das hat leider nichts gebracht... Bin irgendwie ratlos. Hat jemand ne Idee, woran es liegen könnte, dass sich der Cursor, aber NICHT der Text des Labels sowie der Enabled Status der Buttons ändert?
 
S

SlaterB

Gast
> warte mittels join darauf, dass er "fertig" ist und verlasse die Methode wieder

bedeutet, dass der Thread gar nix bringt, denn du blockierst weiterhin die GUI, weil du den AWT-Thread warten läßt,

du musst den Rechen-Thread anschmeißen und die Operation beenden!,
dann wird auch wieder gezeichnet,

um den Aufruf von done() am Ende + evtl. Fehlermeldungen muss sich dann der Thread kümmern

eine gute Mischung ist:
Code:
private void executeClicked {

  Runnable r = {...
    run () {
       // Arbeit
       done()/ Fehlermeldung
    }
  }
  new Thread(r).start();
}

so steht der Code zwar scheinbar in der Operation, wird aber erst im Thread nach der Arbeit ausgeführt
 

Dunedain

Mitglied
Mann, dass ist mir im ja richtig peinlich, was ich hier versuche.... :roll: :shock:

manchmal fehlt einem einfach der nötige Abstand, wenn man den Wald vor Bäumen nicht sieht...

Danke für die Hinweise :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Kann JLabel in JFrame nicht aktualisieren Allgemeine Java-Themen 3
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
Y Warum wird das JLabel falsch verschoben? Allgemeine Java-Themen 1
heinz ketchup String im JLabel ausgeben und erneuern Allgemeine Java-Themen 6
F JLabel nach 5 Sekunden wieder leeren Allgemeine Java-Themen 7
gamebreiti Swing JLabel wird nicht angezeigt Allgemeine Java-Themen 4
Q JLabel Textausgabe funktioniert nicht Allgemeine Java-Themen 4
A Klassen und JLabel's Allgemeine Java-Themen 12
S JLabel auf JPanel Allgemeine Java-Themen 10
D JLabel in (int) Array Allgemeine Java-Themen 8
JAVAnnik Bilder in JLabel Array einfügen Allgemeine Java-Themen 2
T Edit: JLabel+MouseListener oeffnet mehrere Instanzen Allgemeine Java-Themen 5
N Jlabel automatisch anpassen Allgemeine Java-Themen 3
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
M Escape Sequence in JLabel Allgemeine Java-Themen 4
L JLabel um 90 Grad drehen Allgemeine Java-Themen 6
T ImageIcon und JLabel Allgemeine Java-Themen 16
N KeyEvent / JLabel Allgemeine Java-Themen 5
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
S JLabel Allgemeine Java-Themen 2
B Text von JLabel wird nicht aktualisiert Allgemeine Java-Themen 5
M ein JLabel in einem JLabel? Allgemeine Java-Themen 3
M JLabel an Textlänge anpassen / Textlänge in pixel Allgemeine Java-Themen 3
B JCheckBox als JLabel Allgemeine Java-Themen 11
sliwalker JLabel-"Synchronisations"-Problem Allgemeine Java-Themen 7
G Html Link in einem JLabel? Allgemeine Java-Themen 3
L Best Practice Zip Datei aktualisieren Allgemeine Java-Themen 1
S @version in Kommentaren aktualisieren Allgemeine Java-Themen 10
G jTable aktualisieren?! Allgemeine Java-Themen 1
MiMa Metadaten in PDF scheiben/Aktualisieren Allgemeine Java-Themen 11
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
Q Zeit in GUI selbst aktualisieren Allgemeine Java-Themen 5
G Binärbaum aktualisieren Allgemeine Java-Themen 11
2 ArrayList aktualisieren Algorithmus Allgemeine Java-Themen 11
M Applet Oberfläche aktualisieren Allgemeine Java-Themen 5
Iron Monkey JNLP nach Änderung automatisch aktualisieren Allgemeine Java-Themen 18
T .jar-Datei aus Java heraus aktualisieren Allgemeine Java-Themen 8
M JTree aktualisieren nach Mausklick Allgemeine Java-Themen 12
X Konsole aktualisieren Allgemeine Java-Themen 17
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
A ResultSet TableModel aktualisieren? Allgemeine Java-Themen 9
P Umrechnungskurse für Währungen periodisch aktualisieren Allgemeine Java-Themen 2
M Werte im Browser aktualisieren Allgemeine Java-Themen 2
S Model richtig aktualisieren Allgemeine Java-Themen 7
B JScrollPane in einer JTable aktualisieren? Allgemeine Java-Themen 9
MQue Konzept- Frage zum Button-Aktualisieren Allgemeine Java-Themen 5
MQue Daten aktualisieren Allgemeine Java-Themen 2
E aktualisieren eines Images Allgemeine Java-Themen 6
G Textfeld alle 0.5 Sekunden aktualisieren Allgemeine Java-Themen 2
A Eclipse und JAR’s aktualisieren Problem. Allgemeine Java-Themen 4
J Problem mit dem aktualisieren der Tabelle Allgemeine Java-Themen 8
M Aktualisieren eines Chatprofils (Anzahl Minuten) Allgemeine Java-Themen 4
G properties datei aktualisieren Allgemeine Java-Themen 4
K JTree Inhalt löschen und Anzeige aktualisieren Allgemeine Java-Themen 13
J Aktualisieren einer Oberfläche Allgemeine Java-Themen 2
T JEditorPane aktualisieren Allgemeine Java-Themen 14
K layer in Jsp Aktualisieren Allgemeine Java-Themen 3
K Datei in JAR-File aktualisieren Allgemeine Java-Themen 11
D desktop nach ändern des hintergrunds aktualisieren Allgemeine Java-Themen 3
M Container aktualisieren. Nur wie? Allgemeine Java-Themen 3
N JList aktualisieren Allgemeine Java-Themen 23
J ZIP-Datei aktualisieren Allgemeine Java-Themen 5
B JComboBox-Eintrag ohne Enter aktualisieren Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben