Anzeige von JTextField erneuern

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen,

ich habe folgendes Problem:

Code:
textField.setText("Receiving data...");
database.execQuery("SELECT * FROM Tabelle");
textField.setText("Received data.");

Ich gebe eine Meldung aus, führe eine Datenbank-Anfrage durch (die einige Sekunden dauert) und gebe danach eine weitere Meldung aus. Leider wird nur die letzte Meldung ausgegeben.

Weder invalidate(), validate(), revalidate(), repaint(), doLayout() etc. haben mir geholfen. Wie kann ich Swing dazu bewegen, das Textfeld *sofort* zu zeichnen?

Gruß,
AMiGA
 

Oni

Top Contributor
wahrscheinlich wird die meldung ausgegeben und dann direkt überschrieben. und du bekommst es nicht mit weil es zu schnell geht.

du könntest das mit JOptionPane testen.
 

AMiGA

Bekanntes Mitglied
wahrscheinlich wird die meldung ausgegeben und dann direkt überschrieben. und du bekommst es nicht mit weil es zu schnell geht.

du könntest das mit JOptionPane testen.

Wie gesagt, die Datenbank-Anfrage dauert einige Sekunden. Erst nach der Abfrage wird eine Meldung ausgegeben.

Wenn ich folgendes mache wird die Meldung sofort ausgegeben:

Code:
textField.setText("Receiving data..."); 
JOptionPane.showMessage(null, "Test");
database.execQuery("SELECT * FROM Tabelle"); 
textField.setText("Received data.");

...daher denke ich, dass ich nach dem "setText" noch ein Erneuern erzwingen muss, ich weiß nur leider nicht wie.

Gruß,
AMiGA
 
R

Roar

Gast
du hast nicht zufällig alle 3 befehle im eventdispatchthread hinternander stehen?
 

AMiGA

Bekanntes Mitglied
du hast nicht zufällig alle 3 befehle im eventdispatchthread hinternander stehen?

Öh... mach mich nicht schwach... meine Anwendung besteht bislang nur aus zwei Threads, wobei ein Thread einen Timer realisiert (mittels wait(zeit)). Ansonsten habe ich eigentlich alles in einem Thread realisiert, sowohl die GUI als auch den DB-Zugriff. Oder verstehe ich irgend etwas vollkommen falsch?

Gruß,
AMiGA
 

Ilja

Bekanntes Mitglied
wenn ichs richtig verstehe, du möchtest, dass im textfeld die meldung a sagma "bin-laden" steht ^^ und wenn fertig diese dann mit "habe fertig" überschrieben wird!
...nur klappt das nicht, weil die erste nicht angezeigt wird!?

wenn ja, dann hilft da nur noch die db-anfrage in einem separaten thread zu starten! dieser kann on-the-fly auch erzeigt werden und ER muß dann wenn er fertig ist, das txt-feld überschreiben!

d.h.:
1. schreibe "bin laden"
2. erzeuge + starte thread (dem thread die ref. zum txtfeld übegeben)
3. thread fertig, thread kenn txtfeld und schreibt rein "feddich"
wichtig: nix mit wait oder sleep bei GUI, sonst wieder problemme ^^
 

AMiGA

Bekanntes Mitglied
Ohne Multi-Threading habe ich keine Chance? Ich wollte das eigentlich vermeiden und die Kommunikation mit der DB synchron realisieren.
 

Mag1c

Top Contributor
Hi,

Code:
textField.setText("Receiving data...");
SwingUtilities.invokeAndWait(new Runnable() {
    public void run() {
        database.execQuery("SELECT * FROM Tabelle");
    }
});
textField.setText("Received data.");

Gruß
Mag1c
 

AMiGA

Bekanntes Mitglied
...auch invokeAndWait kann wohl nur außerhalb des Event-Dispatch-Threads ausgeführt werden.

Könnte mir vielleicht kurz jemand auf die Sprünge helfen, was ich falsch mache? Ich habe in der Applikation die Darstellung und die Daten in verschiedene Objekte separiert. Aber anscheinend muss ich ja mindestens 2 Threads haben. Einen "Applikations"-Thread und einen "GUI"-Thread.

Muss ich in der Applikation dann das GUI (speziell den JFrame) in einem zusätzlichen Thread starten? Das macht die Anwendung doch direkt um längen komplizierter, wenn diese beiden Threads auf gemeinsame Daten zugreifen und synchronisiert werden müssen oder sehe ich das falsch?

Gruß,
AMiGA
 
B

Beni

Gast
Ohne Multithreading hast du keine Chance. Und ja, deine Anwendung wird komplizierter.

Wenn du die Klassen scharf auftrennst (die einen sind nur für die GUI, die anderen nur für den Arbeits-Thread), wird das Programm aber nicht allzu komplex (Stichwort MVC). Du solltest dir dann aber überlegen, wie und ob du die GUI blockierst, oder ob der User eine begonnene Aktion abbrechen und ersetzen kann...

Zur Kommunikation Arbeits-Thread <-> GUI empfehlen sich die Methoden "EventQueue.invokeAndWait" und ".invokeLater", damit sind die Threads synchronisiert (Swing & AWT unterstützen kein Multithreading).
 

Mag1c

Top Contributor
Moin,

AMiGA hat gesagt.:
...auch invokeAndWait kann wohl nur außerhalb des Event-Dispatch-Threads ausgeführt werden.

Oh, ja sorry, das hab ich nicht gecheckt ???:L

Dann brauchst du wohl doch einen eigenen Thread für die DB-Abfrage. Ist aber nicht soo kompliziert. Die synchrone Anzeige im TextField kannst du ja trotzdem machen.

Gruß
Mag1c
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
kodela Swing Anzeige des Warten-Cursors AWT, Swing, JavaFX & SWT 8
kodela Verspätete Anzeige in Textfeldern AWT, Swing, JavaFX & SWT 8
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
F Design-Anzeige im Windowbuilder AWT, Swing, JavaFX & SWT 3
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
D JavaFX Control zur Anzeige von eBooks AWT, Swing, JavaFX & SWT 5
javampir Swing Anzeige der FileFilter im JFileChooser AWT, Swing, JavaFX & SWT 0
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
V JWindow: Falsche Anzeige auf Ubuntu AWT, Swing, JavaFX & SWT 2
N JDialog als Progress-Anzeige AWT, Swing, JavaFX & SWT 6
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
P Swing Problem mit der Anzeige AWT, Swing, JavaFX & SWT 12
B SWT TreeViewer dynamische Anzeige von Icons AWT, Swing, JavaFX & SWT 3
M Anzeige updatet sich erst am Ende des Programms AWT, Swing, JavaFX & SWT 3
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
A Swing JFileChooser - Anzeige in Echtzeit filtern AWT, Swing, JavaFX & SWT 10
N Swing JTextPane zur Anzeige von HTML AWT, Swing, JavaFX & SWT 2
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
M TabbpedPane Anzeige aktualisieren AWT, Swing, JavaFX & SWT 6
S Anzeige von Beschleunigungswerten AWT, Swing, JavaFX & SWT 2
S Anzeige eines JWindows AWT, Swing, JavaFX & SWT 3
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
B Swing Java crashed nach Anzeige JOptionePane AWT, Swing, JavaFX & SWT 20
S Probleme mit Anzeige von JComboBox AWT, Swing, JavaFX & SWT 2
J Anzeige AWT, Swing, JavaFX & SWT 5
F Verzögerung bei der ersten Anzeige AWT, Swing, JavaFX & SWT 6
timbeau Gitter in Sudoko-Anzeige AWT, Swing, JavaFX & SWT 9
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
D Swing Anzeige während eines Ladevorganges AWT, Swing, JavaFX & SWT 6
N Eigener Grafik Editor mit fehlerhafter Anzeige AWT, Swing, JavaFX & SWT 4
C SWT SWT Browser anzeige bug AWT, Swing, JavaFX & SWT 3
A Einschreiten vor anzeige eines Frames AWT, Swing, JavaFX & SWT 26
P JTree - Explorer mit nur eingeschränkter Anzeige AWT, Swing, JavaFX & SWT 17
J Verzögerung bei Änderungen der Anzeige abwarten AWT, Swing, JavaFX & SWT 5
T SWT Keine Anzeige der Widgets nach Comboauswahl AWT, Swing, JavaFX & SWT 2
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
B SWT Textdatei Lesen und Anzeige in View - Zeichensatzproblem AWT, Swing, JavaFX & SWT 4
hdi JTree: interne Daten OK, Anzeige schwarze Magie AWT, Swing, JavaFX & SWT 2
R Anzeige der Aktivität AWT, Swing, JavaFX & SWT 3
S Splash Screen / "Loading" Anzeige im Programm AWT, Swing, JavaFX & SWT 27
S JTree - Anzeige des Knotennamen ändern AWT, Swing, JavaFX & SWT 2
B JList Anzeige aktualisieren (Models) AWT, Swing, JavaFX & SWT 2
G Keine Anzeige des Balkens AWT, Swing, JavaFX & SWT 3
C JTable aktualisiert die Anzeige nicht AWT, Swing, JavaFX & SWT 2
G Anzeige schwierigkeiten AWT, Swing, JavaFX & SWT 3
G Problem mit Anzeige von HTML AWT, Swing, JavaFX & SWT 5
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
G Anzeige Problem AWT, Swing, JavaFX & SWT 4
D Anzeige eines Bildes: JPanel oder JLabel ? AWT, Swing, JavaFX & SWT 3
T dynamische anzeige? AWT, Swing, JavaFX & SWT 4
W JList Anzeige erneuern AWT, Swing, JavaFX & SWT 4
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
T JComboBox anzeige AWT, Swing, JavaFX & SWT 6
F Anzeige von JPanel AWT, Swing, JavaFX & SWT 3
M JTree und Anzeige des entsprechenden Panels AWT, Swing, JavaFX & SWT 5
K Probleme mit der Anzeige eines einzigen Nodes in einem JTree AWT, Swing, JavaFX & SWT 9
S SWT-Widgets für Anzeige-Elemente AWT, Swing, JavaFX & SWT 3
G Keine Anzeige von Grafik bei externem paintComponent-Aufruf AWT, Swing, JavaFX & SWT 2
M GUI mit Swing erst nach Maximieren richtige Anzeige AWT, Swing, JavaFX & SWT 2
S Anzeige der Benutzeroberfläche verzögern AWT, Swing, JavaFX & SWT 10
P DefaultTreeCellEditor -> Anzeige Probleme AWT, Swing, JavaFX & SWT 3
swek Flackernde Anzeige AWT, Swing, JavaFX & SWT 4
C Schweres Problem mit JDialog und Threads! Anzeige blockiert! AWT, Swing, JavaFX & SWT 5
A JTree-Anzeige filtern AWT, Swing, JavaFX & SWT 7
R Anfängerfrage:anzeige von Gui elementen AWT, Swing, JavaFX & SWT 2
W Anzeige von anderen Bildformaten: BMP, TIFF, PCX AWT, Swing, JavaFX & SWT 5
S Anzeige einer Progressbar. AWT, Swing, JavaFX & SWT 3
G Komponente zur Anzeige einer Textdatei. AWT, Swing, JavaFX & SWT 10
G JList: Anzeige von null-Werten verhindern AWT, Swing, JavaFX & SWT 3
I Problem mit korrekter Anzeige AWT, Swing, JavaFX & SWT 2
G Gibts ne Klasse zur Anzeige von Ziffern? AWT, Swing, JavaFX & SWT 4
S Anzeige-Wirrwar in JScrollbar AWT, Swing, JavaFX & SWT 3
B Anzeige eines SpinnerNumberModel AWT, Swing, JavaFX & SWT 3
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
I JTextfield senden über Enter AWT, Swing, JavaFX & SWT 1
H Swing Wie Fokus von JTextField entfernen? AWT, Swing, JavaFX & SWT 9
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
G JTextField Änderungen überprüfen AWT, Swing, JavaFX & SWT 4
B JTextField in Panel positionieren AWT, Swing, JavaFX & SWT 1
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
xYurisha Gui Focus von JTextField weglenken AWT, Swing, JavaFX & SWT 6
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben