クロスプラットフォームのGUIアプリケーションを作成して(複数のスレッドで)処理し、かなり大量のデータを視覚化する必要があります。理想的には、アプリケーションは比較的高速で見栄えがよいはずです。
アプリのインターフェイスは、テーブルウィジェット、ツリーウィジェット、およびカスタムの図形描画ウィジェットで構成されます。ユーザーはこれらのウィジェットのいずれかからデータを変更でき、変更は他のウィジェットにすぐに反映されます。
もちろん、MVCを使用する予定です。ただし、私は通常、すべてのGUIプログラミングをC++/Qtで行っており、Javaへの露出は非常に限られています。そのため、このようなアプリをJavaで整理する方法についてのアドバイスをいただければ幸いです。特に、SwingまたはJavaFXを使用する必要がありますか?仕事にどのウィジェットを選びますか? Javaプラットフォームのこれらの側面をカバーする本/オンラインチュートリアルをお勧めしますか?
フィードバックをいただければ幸いです。ありがとう!
(この質問は 元々はスタックオーバーフローに投稿されました でしたが、このサイトはより適切な場所として質問されました)
複数の異なるテクノロジーがあなたのニーズを満たすことができるので、これはすべて非常に主観的です。
他の人と同じように、私はおそらくそのようなプロジェクトに個人的に好むテクノロジーをお勧めします JavaFX でしょう。
JavaFXをお勧めする理由は次のとおりです。
さて、上記は少し正解だと思いますが、JavaFXを宣伝したいと思います;-)
とにかく、質問の特定のポイントに対処するには:
代わりに Model-view-presenter pattern を使用してください。 Swing here で mvp4j プロジェクトを介して、適切なMVPの例を表示できます。
Swingではありませんが、このパターンの詳細とJavaでの適用方法については、 GWT Google Developersサイト でMVPの記事も確認してください。フレームワークに関係なく同じ設計原則が成り立ち、GWTはSwingに非常に似ています。
MVPの仕組みの簡単な内訳:
MVPを正しく実装すると、アプリケーションが非常に切り離され、アプリケーションの他の領域に影響を与えずに変更を加えることができます。
編集:JavaFXを使用するという決定に基づいて、以下の記事をチェックすることをお勧めします
必要なウィジェットは Swing または [〜#〜] swt [〜#〜] の両方にあります。ドキュメントには components (Swing)または widgets (SWT)の例が含まれているため、それらを特定するのはかなり簡単です。
Swingは、JDKに含まれ、ゼロから構築されたGUIライブラリです。 SWTは外部のものであり、コンポーネントはネイティブのものに基づいています。
MVCに関しては、どちらもサポートしています。 Swingでは、基本的なデータを実際に提供する各コンポーネントのモデルがあります。コンポーネント自体は、ビューとコントローラの両方です。