SWT SWT-AWT-Problem: Crash einer Applikation

dzim

Top Contributor
Hallo zusammen,

ich hoffe der eine oder andere von euch hat das auch schon mal gemacht und vielleicht ein Paar Ideen:
Ich habe kürzlich - mehr als Proof-Of-Concept - ausprobiert, ob, oder besser wie, man eine Map in einer Anwendung darstellen kann.
Mein erster Weg war zur Goolge Maps API, wo ich dann auf die Static Maps gekommen bin. Würde im Bowser zu öffnen gehen und "erwartungskonform" aus sehen. Problem ist aber, dass das auch recht "arm" wirkt, wenn man nicht mit der Map interagieren kann - Internetverbindung muss eh bestehen, also wäre es schöner, wenn die Map dynamisch wäre. Aber dort gibt es bei der Google Maps API Beschränkungen in dem Umfang der Anfragen (auch wenn ich nicht erwarte, dass sie soooo schnell erreicht werden würden... aber man weiß ja nie).
Ein Kollege verwies mich dann auf OpenStreetMaps.org

So weit so gut. Nun gibt es aber IMHO keine SWT-basierte API, mit der man dies auch im normalen Umfeld nutzen könnte, also habe ich angefangen auch im Swing-Lager zu suchen. Fündig bin ich mit dem JXMapKit geworden.
Immer noch so weit so gut. Mittels AWT_SWT.new_Frame() ein Frame auf meinem SWT-Composite erzeugt, ein Panel rein und auf das Panel das JXMapKit.
Jetzt aber stürzt machmal, wenn ich den Dialog mit dieser Map lade, die komplette Anwendung Sang und Klanglos ab. Ich habe mitbekommen, das manchmal eine Exception in Thread fliegt, die ich nun versucht habe mit Thread.setUncaughtExceptionHandler() abzufangen, aber anscheinend ist das nicht genug, denn trotzdem stürzt sie mitunter ab - immer beim laden des Dialogs und Initialisieren der Map.
Ich denke mal, dass es an der Bridge zwischen den beiden UI-Welten liegt, aber ich habe keine Ahnung, woran genau.
Da es nicht immer passiert (oft genug um nervig zu sein, aber eben nicht immer) bin ich auch noch nicht mittels Debugging darauf gekommen, wo genau denn nun das Problem liegt.

Ich hoffe jemand kennt so ein Problem, oder aber, was noch besser wäre, eine Lösung oder SWT-basierte Alternative für die Maps-Integrierung.

Danke schon mal im voraus,
Daniel
 

dzim

Top Contributor
Noch ein kleiner Nachtrag:
Damit ihr wisst wovon ich rede, habe ich noch einen Screenshot des Dialogs angehängt.
(Ja ich weiß: Der ist noch recht Primitiv ;-) )
 

Anhänge

  • Bildschirmfoto-LocationInfoDialog.jpg
    Bildschirmfoto-LocationInfoDialog.jpg
    99,3 KB · Aufrufe: 42
G

Gast2

Gast
Ich habe es nicht ganz kapiert warum du nicht google maps nimmst?!
Einfach eine SWT_BROWSER aufmachen url eingeben und schon kannst du alles damit machen was auch google-maps kann... oder benötigst du die Daten von google maps zurück und musst die weiter verarbeiten?
 

dzim

Top Contributor
Nun ja, in dem Beispiel hab ich nur einen Marker, es können aber auch hundert oder mehr sein. Darüber hinaus verwende ich in der OSM-Lösung für bestimmte Marker andere Symbole um deren Bedeutung hervorzuheben.
Darüber hinaus, kann man denn so konkret (auch mit den vielen Markern) eine Google-Maps-Adresse zusammenbauen?
 
G

Gast2

Gast
Nun ja, in dem Beispiel hab ich nur einen Marker, es können aber auch hundert oder mehr sein. Darüber hinaus verwende ich in der OSM-Lösung für bestimmte Marker andere Symbole um deren Bedeutung hervorzuheben.
Darüber hinaus, kann man denn so konkret (auch mit den vielen Markern) eine Google-Maps-Adresse zusammenbauen?

Noch nie damit beschäftigt war nur ein Vorschlag...
 

Wildcard

Top Contributor
Hier sind 2 Beispiele wie Google Maps in Eclipse interaktiv verwendet wird:
Eclipse e4 Renderer – Google Maps Developer Papercuts
Help - Eclipse SDK

Zu deinem SWT_AWT Problem.
Die größte Schwierigkeit ist das Threading, hier besteht höchste Deadlock Gefahr.
Du hast nun zwei separate Display Threads (den SWT main Thread und den AWT Event Dispatcher Thread) die beide auf die gleichen Resourcen (Betriebsystemhandles) zugreifen müssen.
SWT meldet sich sofort wenn du versuchst aus dem falschen Thread zuzugreifen aber Swing akzeptiert erstmal alles um dann später Display Artefakte oder Deadlocks zu produzieren :noe:
Meistens ist das Problem also das du Swing aus dem falschen Thread manipulierst.
Beispiel: du klickst auf einen SWT Button und willst nun etwas auf dem Swing Panel aufrufen.
Dann musst du die Aktion mit SwingUtilities#invokeLater in den EDT verschieben.
Besonders kritische Stellen sind übrigens Fokuswechsel zwischen Swing und SWT und instanzieren des AWT Frames.
SWT_AWT ist ein Notnagel, wenn man drauf verzichten kann sollte man auch darauf verzichten, denn die Gefahr für Deadlocks kann man selbst mit perfektem Threading nicht völlig ausschließen.
Das führt dann zu Effekten das alles wunderbar funktioniert mit Java 6 Update X und sich mit Java 6 Update X+1 plötzlich aufhängt. Sehr frustrierend das ganze...
 

dzim

Top Contributor
@SirWayne:
Ich habe nur ein wenig "rumgemault", weil ich froh war, dass es schon so weit ging :) Nichts für ungut!
Wenn man hier so schaut, findet man schon so einiges, mit dem man etwas anfangen könnte, aber das würde eben bedeuten, alles per URL zu machen und diese permanent neu zu konstruieren. Und dort habe ich auch nur etwas für einzelne Marker, nicht aber für mehrere gesehen.

@Wildcard:
Das erste ist doch e4 - ich kann mich entsinnen, dass ich mir seinerzeit den Post von Lars Vogel sogar durchgelesen habe, allerdings gibt es da einen Haken an der Sache: Die Anwendung, die ich konstruiere, läuft auf E3.6.1, nicht E4...
Auch wenn mir da vielleicht dieser Artikel weiterhelfen könnte, habe ich derzeit noch kein Bestreben, einen Umzug der bisherigen Applikation in eine e4-Umgebung vorzunehmen.
Also bleibt dein zweiter Vorschlag. Nachdem ich dazu kürzlich den Blog-Eintrag gelesen hab (A new Google Maps Widget for SWT and RAP EclipseSource Blog) hatte ich es mit der Demo-Anwendung probiert, diese aber nicht zum laufen gebracht - ist immer mit
Code:
org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: init is not defined)
abgestürzt - dabei ist mir die Lust vergangen. Deswegen habe ich mich damit noch nicht weiter beschäftigt.
Ich werde das wohl nachholen, da die Swing-Variante mich sonst noch in den Wahnsinn triebt.

Vielen Dank euch beiden jedenfalls!

Ich schreib nochmal was, wenn ich ein paar Erfahrungsbericht mit dem GMap-Widget habe.
 

dzim

Top Contributor
@Wildcard: BTW Vielen Dank für deine Einsicht in Swing - das ganze war mir vorher nicht bewusst. Das ich mal mit Swing gearbeitet hab ist schon ewig her und da bin ich bestenfalls an der Oberfläche rumgedümpelt.
 

Wildcard

Top Contributor
Zu den beiden Links, da lag ein Missverständnis vor. Mir war schon klar das du vermutlich kein e4 verwendest und der andere war für RAP was du auch nicht verwendest.
Mir ging es nur um folgendes:
Sowohl e4 als auch RAP kochen auch nur mit Wasser, sprich, sie arbeiten mit Google Maps über URLs und die e4 Variante macht das ebenfalls über das SWT Browser Widget. Ich meinte also du könntest dir dort mal den Quelltext ansehen, hätte ich klarer schreiben sollen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
A Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
C Thread-/ Simulations- Problem AWT, Swing, JavaFX & SWT 18
G Swing Setvisible problem AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX -> fxmlLoader -> getResourceAsStream Problem AWT, Swing, JavaFX & SWT 1
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
F Problem mit Implementierung von Kollisionsabfrage AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
L Swing Vier Gewinnt Problem AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
B JavaFX KeyEvent und Canvas draw Problem AWT, Swing, JavaFX & SWT 9
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
Q JList Update Problem AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben