55

これと同様の質問が定期的に寄せられますが、これらの回答の多くは古くなっています。

現在のデスクトップ アプリに匹敵する品質の GUI を備えたクロスプラットフォーム デスクトップ アプリケーションを Java で構築する必要があります。

Swing がデフォルトの選択ですが、少なくともかなり時代遅れで不格好に見えない Swing アプリケーションにまだ出会ったことがありません (主観的なことはわかっていますが、GUI では審美的な判断を避けるのは困難です)。

新しい Bitcoin クライアントは現在 Java バインディングで QT を使用しており、魅力的なユーザー インターフェイスを備えていることに気付きましたが、これにはもはや純粋な Java ではないという欠点があります。

Swing 関連のライブラリを検索して見つけたものの多くは、5 年以上前のものですが、それ以来、デスクトップ アプリケーションの美学は大幅に進化しています。

Java デスクトップ アプリケーションをゼロから構築する必要がある場合、その GUI には何を使用しますか?

4

10 に答える 10

30

調査する新しいLaF-- WebLaFを提供することもできます。私は現在、WebLaFライブラリの基本機能を使用するだけで、多くのUI機能を提供し、Swingでの作業を誰にとってもはるかに簡単にするために取り組んでいます。

一部のWebLaFコンポーネントがどのように見えるかを示すいくつかの例: 一部のWebLaFコンポーネント

私が目標としている主な目標のいくつか:

  1. すべてのSwingコンポーネントをサポートする素晴らしいモダンな外観のL&F
  2. 標準のSwingにはない追加コンポーネントの豊富なセット
  3. コードの記述を支援するユーティリティクラスの大きなセット

WebLaFライブラリは、他のいくつかの利点と独自の機能も提案しています。

  1. これはオープンソースプロジェクトです(GPLv3ライセンス)
  2. ペインターシステムを使用した簡単なコンポーネントスタイリング(特に9パッチファイルを使用)
  3. デフォルトの「Web」スタイルをすばやく簡単にカスタマイズ
  4. Swingアプリケーションインターフェイスの作成を加速および簡素化するための多くの機能

デモアプリを試して、それが現代的で十分にシンプルかどうかを確認できます:)

于 2012-04-13T07:16:25.587 に答える
10

JavaFX 2.0を調べましたか?Swingと簡単に相互運用できるように設計されており、多くの最新の「見栄えの良い」コントロールを備えています。

また、lrAndroidが言及しているように、システムのルックアンドフィールを次のように設定すると、Swingアプリはネイティブアプリのように見える可能性があります。

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
于 2012-04-13T02:56:20.257 に答える
9

Look into changing the Look and Feel of your Java program. This allows you to customize the overall "theme" of your program. Here is information on changing the LAF.

于 2012-04-13T02:48:41.123 に答える
6

最新の Javascript フレームワーク (ExtJS、Dojo など) は、同じかそれ以上の豊富なウィジェット (たとえば Excel のようなグリッド) を提供し、さまざまな L&F を提供し、通常はユーザーの OS によりよく適合します。ユーザーは自分のブラウザーにも非常に慣れており、「最新のもの」は Web 上にあります。今日の最新の Web は HTML+Javascript です。

アプリを「Web ライク」に変換するオーバーヘッドは最小限です。組み込みの Jetty は非常に小さいままにすることができ、ディスク容量の問題ははるかに少なくなります。

アプリケーションの将来の進化のために、このルートをたどる追加の利点があります。

  • 突然、デスクトップ アプリがサーバー アプリになり、別のデスクトップからアクセスできるようになります。ほんの数週間で、デスクトップ アプリを「ポータル」に昇格させることができました。
  • (Ajax) Web サービスの観点からアプリを書き直すと、完全な REST (または SOAP...) サービス スタックの作成に簡単に移行できます。その後、アプリを他のアプリケーションに統合したり、外部から簡単に監視したりできます...
  • UIレイヤーのみに集中することで、他のデバイス(スマートフォン、タブレットなど)のサポートがはるかに簡単になります
  • アプリが成長するにつれて、関心の分離はより明確になります。UI に取り組んでいる開発者は、低レベルのコードをいじる必要はありません。
  • Java でプログラミングしない優れた JS/HTML デザイナーや開発者がたくさんいます。

編集

3年後、これはElectronのおかげで非常に簡単になりました

于 2012-04-13T08:22:05.917 に答える
4

次のいずれかを試してください。

  1. Jタトゥー
  2. JGoodies
  3. クアクア
于 2012-04-13T09:00:40.787 に答える
2

Nimbus のルック アンド フィールはどうですか? Oracle リンクSO-Question もご覧ください

于 2012-04-13T08:56:09.803 に答える
1

QT は非常に広範囲ですが、非常に大きく (肥大化) し、複雑でもあります。たとえば、オープン オフィスで使用されている SWT ライブラリもあります。SWT はボタンやテーブルなどにネイティブの UI ウィジェットを使用しますが、Swing はそれらをエミュレートします。

ただし、トレンドは明らかに、HTML と Javascript を使用してブラウザー用のリッチ クライアント アプリケーションを作成する方向にあります。これらは両方とも、過去数年間で大きな進歩を遂げました。

HTML5 は、切断されたシナリオをサポートするために、より優れたフォームやローカル データベースなどの機能を備えたリッチ クライアント アプリケーションを特に対象としています (この最後の機能はまだ標準化されていませんが、最新のすべてのブラウザーで実装されていることに注意してください)。

Javascript には、jQuery とその多くのプラグインを備えた強力なライブラリが含まれるようになりました。よりシンプルで強力な構文で Javascript を生成するために使用できる Coffeescript のような言語さえあります。

また、そのようなアプリが外部サーバーに接続する必要もありません。小さなフットプリントのローカル サーバー (jetty、node.js など) とデータベース (SQLite、H2 など) をクライアントにインストールして、完全に自己完結型のアプリケーションを作成できます。

于 2012-04-13T03:05:55.637 に答える
1

私はFlatLafで良い経験をしました。

インストールが簡単で、クロスプラットフォームであり、外部依存関係がなく、オープンソース (Apache ライセンス) であり、ダークモードが含まれており、テーマがたくさんあります。

ライト

暗い

追加後:

UIManager.setLookAndFeel( new FlatLightLaf() );

あなたのアプリは、前のミレニアムではなく、過去 10 年間に作成されたように見えます。

また、アクセシビリティのために、ハイ コントラスト テーマが 1 つあります。

于 2021-07-12T16:04:45.130 に答える