In der GUI / im Model auf Webrequest warten?

Status
Nicht offen für weitere Antworten.

mad-boy

Mitglied
Hi,

ich weiß leider nicht ob das eher ins Forum für Netzwerkprogrammierung oder doch eher in die Swing Foren gehört, oder vielleicht doch eher eine allgemeine OOP Frage ist:

Ich arbeite an einem Programm, in dem man einen Suchbegriff eingibt und dann aus einder Datenbank im Internet Daten gesammelt werden. Da es natürlich ungewiss ist, wie lange es dauert, bis die Antwort vom Webserver kommt, würde ich gerne, währen ich darauf warte, ein drehendes Rädchen, wie man es z.B. von AJAX kennt einbauen.

Mein Programm sieht so aus, dass die Ergebnisse in einer JTable dargestellt werden, also im Hintergrund ein AbstractTableModel arbeitet. Das wiederum bekommt die Daten von einer API für das Webinterface.
Ich weiß leider nicht so recht, wie ich nun da ran gehen soll. Der User schickt eine Suchanfrage, diese würde ja dann asynchron an die API geschickt, damit der Swing-Thread nicht blockiert wird. Nun setzt die API die Anfrage ab und stellt sich beispielsweise selber auf loading = true; Kommen die Anfragen nun zurück, wird loading = false gesetzt. Und nun? Wie teile ich das der GUI wieder mit? Wenn die API eine Methode der GUI anspricht klingt das für mich nach keinem guten OOP Ansatz, da ja eigentlich die GUI die Daten von sich aus abfragen sollte oder? Wie löst ihr sowas? Gibts da evt. schon Interfaces die für so etwas gut sind?

Liebe Grüße,
Michael
 

Ebenius

Top Contributor
Du könntest Dir eine Klasse bauen, zum Beispiel InternetSearchCrawler, ein Interface InternetSearchListener, und eine Event-Klasse InternetSearchEvent. Die GUI hängt sich an den InternetSearchCrawler als Zuhörer und aktualisiert dann pro Event per SwingUtilities.invokeLater() das Tabellenmodell. Dann wird's hübsch getrennt und die Suchmaschinenmaschine kennt die GUI nicht.

Ebenius
 

mad-boy

Mitglied
Hi,

danke euch beiden.

Zum SwingWorker: Dann habe ich eine Klasse die zur GUI gehört, um Logik auszuführen. Widerspricht ein wenig dem was ich gelernt habe. :)

Das mit der Event-Klasse klingt gut. Mal sehen, dass ich dass vielleicht auch zentral in den Controller lege. Aber das werde ich so auf jeden Fall mal mit einplanen!

Danke für die Hilfe!

Viele Grüße,
Michael
 

Ebenius

Top Contributor
mad-boy hat gesagt.:
Zum SwingWorker: Dann habe ich eine Klasse die zur GUI gehört, um Logik auszuführen. Widerspricht ein wenig dem was ich gelernt habe. :)
Das muss man differenziert sehen. Nur weil die GUI in einem SwingWorker eine Funktion ausführt, muss diese aufgerufene Funktion ja nicht innerhalb der GUI definiert sein. Somit ist die Schichtentrennung eigentlich nicht gefährdet.

Viel Erfolg mit dem Design,
Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java model class ? Allgemeine Java-Themen 9
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
Slevin MVC Model Allgemeine Java-Themen 9
P MVC - Frage zu Model Allgemeine Java-Themen 4
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
H Model-View-Controller Fail? Allgemeine Java-Themen 31
P Model + ModelInterfaces Allgemeine Java-Themen 10
M Model View Controller Entwurfsmuster! Allgemeine Java-Themen 11
G Transaction Script, Table- Domain Model Allgemeine Java-Themen 2
J Model View Controller Architektur Allgemeine Java-Themen 6
B Daten an Tabel Model übergeben Allgemeine Java-Themen 8
G Domain Driven Design Model Allgemeine Java-Themen 14
G Mediator-Model Allgemeine Java-Themen 7
M Model für Dateimanager Allgemeine Java-Themen 3
borobudur MVC Model Generator Allgemeine Java-Themen 2
S Model richtig aktualisieren Allgemeine Java-Themen 7
E model.getchild Allgemeine Java-Themen 8
Z JTextField mit Model kommunizieren Allgemeine Java-Themen 6
J Warten bis cmd Prozess fertig ist Allgemeine Java-Themen 2
M Warten vor OnClickListener Allgemeine Java-Themen 2
B Threads Multithreading Threads sollen warten Allgemeine Java-Themen 12
KaffeeFan Methoden Suche Methode um Programm kurz warten zu lassen Allgemeine Java-Themen 22
M Warten bis Variabel nicht null ist Allgemeine Java-Themen 18
chuxXo Warten auf BasicPlayer - JavaZOOM SoundAPI Allgemeine Java-Themen 8
J Java Auf anderes Programm warten Allgemeine Java-Themen 9
W Threads Threads warten lassen Allgemeine Java-Themen 5
D Simpler Timer zum warten Allgemeine Java-Themen 19
B Threads Main Thread warten auf abgebrochen Task warten lassen Allgemeine Java-Themen 25
das-mo Warten auf Event Allgemeine Java-Themen 7
L Im Thread auf Eingaben warten Allgemeine Java-Themen 3
frankred Threads Auf eine Gruppe von Threads warten Allgemeine Java-Themen 11
S Warten, bis ein Impuls von außen kommt. Allgemeine Java-Themen 2
A Warten auf shellscript Allgemeine Java-Themen 3
K Warten bis Datei geändert Allgemeine Java-Themen 2
R Programm soll warten bis eine Passwort eingabe gemacht wurde. Allgemeine Java-Themen 6
KrokoDiehl Desktop.open() und warten? Allgemeine Java-Themen 3
Guybrush Threepwood Warten, bis keine Taste gedrückt Allgemeine Java-Themen 11
H auf Methode warten Allgemeine Java-Themen 2
F thread warten lassen Allgemeine Java-Themen 2
N "Bitte warten"-Meldung Allgemeine Java-Themen 6
P Swing Eine Sekunde warten (Timer) Allgemeine Java-Themen 7
kodela Warten mit Java Allgemeine Java-Themen 5
L Warten bei mehreren Threads, bis Ende erreicht ist Allgemeine Java-Themen 2
S Threads eines Pools aufeinander warten lassen Allgemeine Java-Themen 11
J Main-Thread soll auf alleKinder Threads warten Allgemeine Java-Themen 5
MQue auf gestarteten Process warten Allgemeine Java-Themen 7
M Auf Einträge im Buffer warten Allgemeine Java-Themen 7
G Auf den Start eines Threads warten? Allgemeine Java-Themen 4
M Auf Thread warten Allgemeine Java-Themen 5
G Warten? Allgemeine Java-Themen 3
R Warten auf Beendigung eines externen Prozesses Allgemeine Java-Themen 4
B Programm soll auf die Eingabe vom Mouselistener warten. Allgemeine Java-Themen 19
C Java Parameter zum starten ohne auf Programmende zu warten Allgemeine Java-Themen 4
M Methode soll warten, bis Button gedrückt Allgemeine Java-Themen 2
P Warten auf ein Ereignis Allgemeine Java-Themen 7
R Thread beenden und warten, bis er fertig ist Allgemeine Java-Themen 4
K Warten auf die Eingabe aus Fenster.... Allgemeine Java-Themen 2
O Warten bis alle gestarteten Threads beendet sind? Allgemeine Java-Themen 6
Q Methode soll auf schließen eines Frames warten Allgemeine Java-Themen 4
S methode stoppen / auf ein event warten Allgemeine Java-Themen 5
J x Sekunden warten, dann Kommando ausführen Allgemeine Java-Themen 8
B Thread soll auf Event warten, dann Daten an Klasse senden Allgemeine Java-Themen 2
R Thread soll auf MouseClick warten Allgemeine Java-Themen 2
W Warten bis gestartetes Programm beendet wird Allgemeine Java-Themen 2
D Warten auf Dateien aus externem Programm Allgemeine Java-Themen 3
D commapi lesen, auf zeichen warten. Allgemeine Java-Themen 2
sliwalker Threads: Kann man auf anonyme Threads warten? Allgemeine Java-Themen 2
S Datei endlos einlesen (am Dateiende warten) Allgemeine Java-Themen 3
N auf java 1.5 (tiger) warten? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben