Ich muss eine plattformübergreifende GUI-Anwendung schreiben, um (in mehreren Threads) ziemlich große Datenmengen zu verarbeiten und zu visualisieren. Idealerweise sollte die Anwendung relativ schnell sein und gut aussehen.
Die Benutzeroberfläche der App besteht aus einem Tabellen-Widget, einem Baum-Widget und einem benutzerdefinierten Widget zum Zeichnen von Figuren. Der Benutzer kann die Daten eines dieser Widgets ändern, und die Änderungen sollten sofort in den anderen Widgets übernommen werden.
Natürlich plane ich MVC zu verwenden. Normalerweise mache ich jedoch meine gesamte GUI-Programmierung in C ++ / Qt und bin nur sehr begrenzt mit Java vertraut. Daher würde ich mich über Ratschläge zur Organisation einer solchen App in Java sehr freuen. Sollte ich insbesondere Swing oder JavaFX verwenden? Welche Widgets würden Sie für den Job auswählen? Könnten Sie Bücher / Online-Tutorials empfehlen, die diese Aspekte der Java-Plattform abdecken?
Ich freue mich über jedes Feedback. Vielen Dank!
(Diese Frage wurde ursprünglich auf Stack Overflow veröffentlicht , aber diese Site wurde als geeigneterer Ort vorgeschlagen, um sie zu stellen.)
Verwenden Sie stattdessen ein Model-View-Presenter-Muster . Sie können hier über das mvp4j- Projekt ein gutes MVP-Beispiel in Swing anzeigen .
Obwohl ich nicht Swing bin, würde ich auch die MVP-Artikel auf der GWT Google Developers-Website lesen, um weitere Einblicke in dieses Muster und dessen Anwendung in Java zu erhalten. Unabhängig vom Framework gelten dieselben Konstruktionsprinzipien, und GWT ist Swing sehr ähnlich.
Eine kurze Übersicht über die Funktionsweise von MVP:
Bei korrekter Implementierung wird Ihre Anwendung durch MVP stark entkoppelt und Sie können Änderungen vornehmen, ohne andere Bereiche Ihrer Anwendung zu stören.
Bearbeiten: Aufgrund Ihrer Entscheidung, JavaFX zu verwenden, würde ich empfehlen, die folgenden Artikel zu lesen
quelle
Die Widgets , die Sie benötigen , können in beiden gefunden werden Schwingen oder SWT . Die Dokumentation enthält Beispiele für Komponenten (Swing) oder Widgets (SWT), sodass diese relativ einfach zu identifizieren sind.
Swing ist eine GUI-Bibliothek, die in JDK enthalten ist und von Grund auf neu erstellt wurde. SWT ist eine externe und die Komponenten basieren auf nativen.
MVC wird von beiden unterstützt. In Swing haben Sie für jede Komponente ein Modell, das praktisch die zugrunde liegenden Daten bereitstellt. Die Komponente selbst ist sowohl die Ansicht als auch der Controller.
quelle