GUI Element in einer Methode aktualisieren (JTextPane)

RED000DEATH

Mitglied
Hallo liebe Kollegen,
Ich habe ein kleines Problem was die aktualisierung meines JTextPanes angeht, ich öffne darin eine php-Datei (auf einem Server) und möchte das Ergebnis auslesen, jedoch wird der Inhalt des JTextPanes erst dann aktualisiert, wenn ein JOptionPane.showMessageDialog() geöffnet wird. Ansonsten ist der Inhalt des JTextPanes nicht "0"/"1" sonder "".
Nach dem öffnen des JOptionPane hat er dann den gewünschten Wert ("0"/"1") und nicht mehr "".
Gibt es eine Möglichkeit dieses JOptionPane zu umgehen und trotzdem den Wert zu bekommen? mit jOptionPane1.repaint(); und jOptionPane1.revalidate(); funktioniert es leider nicht.
Weiter unten ist ein Teil des Codes.


Java:
try {
     this.TxpBrowser.setPage("http://adresse.de/datei.php?username=" + txfUsername.getText() + "&password=" + passwordhash);
     try{
          Thread.sleep(2000);
     }catch(InterruptedException e){}
}catch(Exception e){
     JOptionPane.showMessageDialog(null ,"Es konnte keine Verbindung zur Datenbank hergestellt werden! Bitte überprüfen Sie Ihre Internet Verbindung!", "Fehler beim Verbinden zur Datenbank!", JOptionPane.ERROR_MESSAGE);
     System.exit(0);
}
try {
     JOptionPane.showMessageDialog(this, "Loginversuch wird gestartet...", "Login...", JOptionPane.INFORMATION_MESSAGE); //Wenn diese Zeile fehlt aktualisiert er das JTextPane (TxpBrowser) nicht. --> loginstatus = ""
     loginstatus = TxpBrowser.getDocument().getText(0, TxpBrowser.getDocument().getLength());
} catch (BadLocationException ex) {
     System.out.println(ex);
}


Vielen Dank schon mal im voraus,
Patrick Langkau
 

VfL_Freak

Top Contributor
Moin,

Ich habe ein kleines Problem was die aktualisierung meines JTextPanes angeht, ich öffne darin eine php-Datei (auf einem Server) und möchte das Ergebnis auslesen, jedoch wird der Inhalt des JTextPanes erst dann aktualisiert, wenn ein JOptionPane.showMessageDialog() geöffnet wird. Ansonsten ist der Inhalt des JTextPanes nicht "0"/"1" sonder "".
Nach dem öffnen des JOptionPane hat er dann den gewünschten Wert ("0"/"1") und nicht mehr "".

Gibt es eine Möglichkeit dieses JOptionPane zu umgehen und trotzdem den Wert zu bekommen? mit jOptionPane1.repaint(); und jOptionPane1.revalidate(); funktioniert es leider nicht.
Bitte was ?? :eek:

Welche "Textpane" ???
Wo siehst wann ("0"/"1") ???

Gibt es eine Möglichkeit dieses JOptionPane zu umgehen und trotzdem den Wert zu bekommen? mit jOptionPane1.repaint(); und jOptionPane1.revalidate(); funktioniert es leider nicht.
Was meinst Du mit "umgehen" ??
Wenn Du einen Messagedialog anzeigen willst wohl kaum - es seit denn Du bastelst Dir was eigenes ....

Geht es Dir darum, den Messagedialog quasi zu aktualisieren, damit sich der angezeigte Inhalt ändert?
Dann kannst Du den ersten Dialog schließen und ihn erneut mit anderem Inhalt aufrufen ... oder Du setzt mit "setMessage" einen neuen Textinhalt!

Gruß Klaus
 

RED000DEATH

Mitglied

Joose

Top Contributor
Welches Control aktualisiert sich nun nicht? Das JTextPane oder JOptionPane?
Im 1.Post war von JTextPane die rede ... das aktualisiert sich wegen den sleep nicht (GUI Thread schlafen gelegt).
 

RED000DEATH

Mitglied
Moin,


Was genau meinst Du denn damit ??
So richtig klar ist immer noch nicht, was Du eigentlich genau versuchst !!

Gruß Klaus

Hallo :)
Ich habs vielleicht ein bisschen schlecht erklärt ich versuche es mal geschwind nochmal :)
Also das Programm ist ein Log-In Programm :) man gibt einen Benutzernamen und ein Passwort an (das Passwort wird verschlüsselt aber das tut ja nichts zur Sache^^) dies wird dann an eine php-Datei im Browser (den TxpBrowser) übergeben, diese php Datei überprüft einfach ob diese Kombination in einer MySql-Datenbank vorhanden ist und gibt je nachdem 1 für ja, 0 für nein zurück. Mein Programm soll nun diese Zahlen auswerten. Das Problem dabei ist, die Zahl (Website) wird im TxpBrowser nicht angezeigt bevor die Methode des Button Click Events fertig durchlaufen ist.
Wenn ich jetzt jedoch ein JOptionPane davor anzeigen lasse, wird (aus irgendeinem Grund) im TxpBrowser die Seite angezeigt bevor die Methode vollständig durchlaufen wurde (was das Auswerten der Zahl möglich macht).
Eigentlich will ich dieses JOptionPane garnicht, jedoch wird ohne das JOptionPane die Seite nicht in den TxpBrowser eingelesen.


Puh... hoffe das war verständlicher :)

Vielen dank schon mal :)

Gruß Patrick
 

RED000DEATH

Mitglied
Aber wird die JTextPane überhaupt aktualisiert und zeigt dann das richtige an, auch ohne die JOptionPane?
Es wird aktualisiert nachdem die Methode durchlaufen ist oder vorher ein JOptionPane geöffnet wurde, das Richtige zeigt es dann auch an. Ich versuche blos hinzubekommen, dass er es schon vor dem Ende der Methode und ohne das JOptionPane das JTextPane aktuallisiert.

Gruß Patrick
 

Joose

Top Contributor
Ich habe dir weiter oben schon gesagt wo das Problem liegt.
Weitere Informationen: Aktualisierungen der UI sollten im EventDispatcherThread (EDT), da dieser auch das Zeichnen übernimmt, vorgenommen werden. Mittels SwingUtilities sollte das einfach realisierbar sein.
 

Harry Kane

Top Contributor
@Joose: Ich glaube das Problem ist etwas diffiziler.
jedoch wird der Inhalt des JTextPanes erst dann aktualisiert, wenn ein JOptionPane.showMessageDialog() geöffnet wird
So wie es aussieht, ist diese Aussage zumindest missverständlich. Offenbar wird der Inhalt der JTextPane auch ohne JOptionPane aktualisiert, aber nicht so schnell, dass die Variable loginStatus den INhalt repräsentiert.

Zitat aus der API-Dokumentation von JEditorPane.setPage:
This may load either synchronously or asynchronously depending upon the document returned by the EditorKit. If the Document is of type AbstractDocument and has a value returned by AbstractDocument.getAsynchronousLoadPriority that is greater than or equal to zero, the page will be loaded on a separate thread using that priority.

If the document is loaded synchronously, it will be filled in with the stream prior to being installed into the editor with a call to setDocument, which is bound and will fire a property change event. If an IOException is thrown the partially loaded document will be discarded and neither the document or page property change events will be fired. If the document is successfully loaded and installed, a view will be built for it by the UI which will then be scrolled if necessary, and then the page property change event will be fired.

If the document is loaded asynchronously, the document will be installed into the editor immediately using a call to setDocument which will fire a document property change event, then a thread will be created which will begin doing the actual loading. In this case, the page property change event will not be fired by the call to this method directly, but rather will be fired when the thread doing the loading has finished. It will also be fired on the event-dispatch thread. Since the calling thread can not throw an IOException in the event of failure on the other thread, the page property change event will be fired when the other thread is done whether the load was successful or not.
Meine Vermutung: du lädst das Dokument asynchron, und das laden dauert länger als die 2 Sekunden, die du den EDT schlafen legst. Wenn du die JOptionPane anzeigst, wartest du mit dem Bestätigen offenbar länger als 2 sec, und während der Zeit wird das Dokument vollständig geladen. Schlauerweise hast du uns nicht gesagt, wie lange du typischerweise die JOptionPane anzeigst, und ob die Anzeigedauer einen Einfluss auf das Ergebnis hat (ich würde vermuten, dass ja, und dass loginStatus auch dann einen falschen Wert hat, wenn du die JOptionPane sofort zumachst).
Entweder: ((AbstractDocument)TxpBrowser.getDocument()).setAsynchronousLoadPriority(-1)
oder: du hängst einen PropertyChangeListener an den TxpBrowser und liest den Inhalt erst dann aus wenn nach dem Laden das PropertyChangeEvent gefeuert wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Element aus einer Methode heraus hinzufügen AWT, Swing, JavaFX & SWT 2
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
U Ein Element in einer JList farbig hervorheben ! AWT, Swing, JavaFX & SWT 2
A Element aus einer JList löschen AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
G FX warten bis ein anderes GUI Element ausgewählt wurde AWT, Swing, JavaFX & SWT 8
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
M Internal Frames und Canvas-Element AWT, Swing, JavaFX & SWT 9
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
ImperatorMing JavaFX Übersicht - Welches Element kann welches Erreignis AWT, Swing, JavaFX & SWT 3
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JavaFX Custom ListView erstellt ghost Element AWT, Swing, JavaFX & SWT 3
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
L JavaFX Hover Effekt über das Parent Element AWT, Swing, JavaFX & SWT 4
domjos1994 JavaFX Element auswählen auf dem der Cursor ist AWT, Swing, JavaFX & SWT 1
M Ein Element in mehreren JList selektieren AWT, Swing, JavaFX & SWT 5
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
P Swing Nach removeAll() noch 1 Element vorhanden AWT, Swing, JavaFX & SWT 0
K Swing GUI Element wird nicht skaliert AWT, Swing, JavaFX & SWT 6
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
E selektiertes Element aus JList zurückgeben AWT, Swing, JavaFX & SWT 7
H Swing Element aus JComboBox auswählen AWT, Swing, JavaFX & SWT 2
C click auf JButton und darunter liegendes element AWT, Swing, JavaFX & SWT 5
B Element schrittweise verschieben AWT, Swing, JavaFX & SWT 2
S Ausschluss bei Klick auf GUI Element AWT, Swing, JavaFX & SWT 6
GianaSisters AWT Per Button neues Element auf den jPanel setzen AWT, Swing, JavaFX & SWT 6
M gleiches Element in JList mehrmals hintereinander auswählen AWT, Swing, JavaFX & SWT 6
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
F Element anzeigen / erstellen. Maus vs Controller AWT, Swing, JavaFX & SWT 7
M Frage nach Swing Element AWT, Swing, JavaFX & SWT 3
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
W SWT Resize Tree-Element AWT, Swing, JavaFX & SWT 3
Landei Swing JTree - Element mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 4
B Swing: letztes Element wird immer auf Fenstergröße gezogen AWT, Swing, JavaFX & SWT 3
F Swing Paint mit Canvas Element AWT, Swing, JavaFX & SWT 35
G JTree Element wird nicht markiert AWT, Swing, JavaFX & SWT 2
X Swing Swing Element gesucht -> um als Konsole zu fungieren AWT, Swing, JavaFX & SWT 4
H GridBagLayout Element komplett ausfüllen AWT, Swing, JavaFX & SWT 5
D Swing Document-Structure; Element AWT, Swing, JavaFX & SWT 4
N Nur ein Element sichtbar beim Drucken eines JFrame AWT, Swing, JavaFX & SWT 9
C Aktion durchführen bei Klick auf ein Element im JTree (Untersch. Klick und Doppklick) AWT, Swing, JavaFX & SWT 5
H Swing [gelöst]Neues Swing Element erstellen AWT, Swing, JavaFX & SWT 4
D Problem an Parent Element ranzukommen. AWT, Swing, JavaFX & SWT 7
G JList und ein neues Element oben in der Liste einfügen AWT, Swing, JavaFX & SWT 4
ABstraCT JCombobox dynamisch füllen (erstes Element Problem) AWT, Swing, JavaFX & SWT 4
N JPopupMenu - ausgewähltes Element zurückgeben AWT, Swing, JavaFX & SWT 2
V Element zu Listenfeld hinzufügen AWT, Swing, JavaFX & SWT 6
S MouseListener zurückverfolgung auf element. AWT, Swing, JavaFX & SWT 7
zilti Swing-Element verändern AWT, Swing, JavaFX & SWT 13
N in jScrollPane, neues Swing Element hinzufügen AWT, Swing, JavaFX & SWT 6
M Zwei Element auf ein Contentpane AWT, Swing, JavaFX & SWT 45
G Listener (anonyme Klasse) jedem Element eines Array zuweisen AWT, Swing, JavaFX & SWT 5
V Wie heisst dieses GUI-Element? Gibt es sowas für Swing? AWT, Swing, JavaFX & SWT 10
E JTree selektiertes Element AWT, Swing, JavaFX & SWT 3
S Swing Element für Explorer-Fenster darstellung AWT, Swing, JavaFX & SWT 13
G JCombobox - Element richtig anzeigen AWT, Swing, JavaFX & SWT 5
W Element im JTree farblich markieren AWT, Swing, JavaFX & SWT 6
N JTree mehrere/ohne Root Element/e AWT, Swing, JavaFX & SWT 2
M JLIST - Ein Element selektieren und weiterverarbeiten! AWT, Swing, JavaFX & SWT 2
C leeres Element in Gridlayout einfuegen AWT, Swing, JavaFX & SWT 3
E Wie heißt dieses graphische Element (Bild inside)? AWT, Swing, JavaFX & SWT 2
G JTree. Neues Element hinzufügen und Selection beibehalten! AWT, Swing, JavaFX & SWT 3
bummerland auf übergeordnetes element zugreifen AWT, Swing, JavaFX & SWT 2
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben