実際の環境でプログラムを変更せずに Java のルック アンド フィールを変更することは可能ですか?
理論的には答えがイエスであることはわかっています。また、デモ アプリケーションを作成し、実行時でもルック アンド フィールを変更したところ、機能しました。しかし、多くのコントロールを含む実際のアプリケーションを作成したとき、ルック アンド フィールの変更は実際には機能していませんでした。
- 異なるルック アンド フィールには、異なるバグ (または奇妙な機能) があります。たとえば、JTextField と JFormattedTextField に同じスタイルを作成するものもあれば、異なるスタイルを使用するものもあります。この変更は、ユーザーにとって非常に煩わしい場合があります。
- コントロールのサイズは同じではありません (異なるフォント、異なる境界線を使用)。そのため、変更後にウィンドウが見苦しく見えることがあります。
- キーボード ショートカットも異なる場合があります。
- ...
私のアプリケーションでは、ルック アンド フィールを変更した後 (実際には、ルック アンド フィールを変更する代わりに、異なるスキンで同じルック アンド フィールを使用してみました)、常にアプリケーションを変更する必要があります。それほど大きな変更ではありませんが、ルックアンドフィールの変更を困難にする小さな変更がたくさんあります。
私が試したルック アンド フィール (現在は skinlf を使用) で非常に不運だったのでしょうか、それともルック アンド フィールの変更は小さなデモ アプリケーションのように簡単ではありませんか?
更新: 私は Swing を使用していますが、現在、他の GUI ライブラリに変更することはできません。
UPDATE2 : 質問が明確ではなかったようです。ルックアンドフィールを変更する方法を知っています。私の質問は次のとおりです。ルック アンド フィール (またはルック アンド フィールのスキン) を簡単に変更できる実際のアプリケーションを作成することは可能ですか? 現在、ルック アンド フィールを変更する場合、2 行または 3 行を変更するだけでは十分ではありません。アプリケーション全体を見直して、ルック アンド フィールの変更によって引き起こされた多くの問題を修正する必要があります。dhiller は、skinlf をより良いルック アンド フィールに置き換えることを提案しました。スキン交換がうまく機能するスキン可能なルック アンド フィールを教えてもらえますか?