まず最初に、そして最も重要なこととして、クライアントアプリはどこで実行されますか?-ブラウザ-Androidデバイス-PC/Mac
ブラウザ
選択できるオープンソースのJavaフレームワークはたくさんあり、選択する作業は困難な場合があります。私にとって、この分野で明確な勝者があり、それはGWTですhttps://developers.google.com/web-toolkit/
より高いレベルのユーザーコントロールやその他のツールを提供するGWTに基づくいくつかのライブラリがあります。私はGWTおよびGWTベースのライブラリの多くの利点を思い付くことができますが、主なものは-それはすべてJavaソリューションであり、純粋なJava(Javaスクリプト、jsp、HTMLなし)です
アンドロイド
ここでは多くのアドバイスを与えることはできませんが、Googleが提供する標準ライブラリから始めるのが良い選択です。
PC / Mac
クライアントPCで実行されているJavaアプリケーションは、おそらく最も人気のないオプションです。ユーザーに自分のマシンでアプリケーションを実行させることができれば、それだけの価値があります。つまり、最も見栄えがよく、最も豊富なコンポーネントのセットを備えたものを見つけます。これを念頭に置いて、標準のJavaSwingライブラリはまったく不十分です。このカテゴリの重量はJavaFxのようですが、使用したことがないため、あまりコメントできません。