3 Stimmen

Ausführen von SWT-Komponenten innerhalb einer Swing-Anwendung

Ich habe mich gefragt, ob jemand Erfahrung damit hat, eine komplexe SWT-Benutzeroberfläche innerhalb einer Swing-Komponente auszuführen.

Ich habe es geschafft, eine sehr einfache Demo in Gang zu bringen, aber wenn jemand anderes versucht hat und gescheitert / erfolgreich, dies zu tun, wäre es toll, von ihren Erfahrungen zu lernen.

Also zu wiederholen, meine Anwendung ist eine Swing-app, die ich verwenden möchten, eine komplexe SWT-UI-Komponente (Drag & Drop, Popup-Fenster und Dialoge) - jemand verwaltet diese?

3voto

BCunningham Punkte 1038

Ich habe sowohl Swing als auch SWT verwendet, allerdings noch nie in derselben Anwendung/demselben Projekt.

Solange Sie nicht versuchen, Komponenten innerhalb desselben Fensters zu mischen, sehe ich keinen Grund, warum Sie nicht völlig getrennte Fenster/Dialoge haben können, die jeweils einen bestimmten Widgetsatz verwenden. Allerdings würde der Versuch, SWT und Swing in einem einzigen Fenster zu mischen, wahrscheinlich nie funktionieren oder zumindest viele Probleme verursachen, da beide Widgetsets auf völlig unterschiedlichen Mitteln zum Zeichnen/Layout beruhen - Swing's Komponenten werden alle direkt in Java gehandhabt und sind vollständig vom zugrunde liegenden Betriebssystem getrennt, während SWT explizit auf das zugrunde liegende Betriebssystem angewiesen ist, um alle (oder die meisten) der GUI-Rendering zu tun. Der Versuch, die beiden zu mischen, würde wahrscheinlich alle Arten von Problemen verursachen.

Natürlich werde ich auch die übliche Antwort "das ist keine empfohlene Praxis" geben: Wenn Sie nicht gerade ein ganz bestimmtes Ziel vor Augen haben, ist es keine gute Idee, verschiedene Widgetsätze in derselben Anwendung zu mischen. Swing und SWT haben zwei völlig unterschiedliche Philosophien und zugrunde liegende Architekturen. Tatsächlich entstand SWT aus der Tatsache, dass IBM/OTI den Ansatz von Swing nicht mochte und sich daher entschloss, eigene Widgets zu implementieren. Bei solch gegensätzlichen Ansätzen für GUI-Widgets ist es besser, sich für einen zu entscheiden und bei diesem zu bleiben, als die beiden miteinander zu vermischen.

2voto

The Dissonant Punkte 323

Swing und SWT zu mischen ist nicht das Beste, was man tun kann, aber wenn man keine andere Wahl hat, ist es nicht besonders schwierig, dieses Biest zu erlegen. Versuchen Sie einfach, einige Regeln/Standards in Ihrem Code durchzusetzen. z.B. behalten Sie alle Dialoge in Swing (verwenden Sie nicht eine Mischung aus beiden, wenn es keinen Grund dafür gibt), verwenden Sie Namenskonventionen, um zwischen Swing- und SWT-Komponenten zu unterscheiden, usw.. Stellen Sie sicher, dass Sie wissen, wie Swing- und SWT-Komponenten vom Betriebssystem/JVM gehandhabt werden, bevor Sie komplexe UI-Probleme angehen.

Eine Sache, auf die Sie achten sollten, ist das Drag & Drop zwischen Swing- und SWT-Komponenten. Es ist ein bisschen schwierig, aber vor allem, wenn Sie in benutzerdefinierten Datentypen zu werfen beginnen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X