/ / NetBeans RCPアプリケーションでのサードパーティのルックアンドフィールの使用 - java、swing、rcp、ルックアンドフィール

NetBeans RCPアプリケーションでのサードパーティのルックアンドフィールの使用 - java、swing、rcp、ルックアンドフィール

私はサードパーティのLAFをNetBeans RCPアプリケーション(IDEではなく)。これはサードパーティのLAFであるため、追加のJARへの依存関係を含める必要があります。モジュラープラットフォームであるので、LAF JARをラップし、restore()メソッドでUIManager.setLookAndFeel()を呼び出すNetBeansモジュールを書きました。問題は、モジュールが特定の順序でロードされないため、常に機能しないことです。

理想的には私はこのモジュールをすぐにロードすることを強いるでしょうが私はそれをきれいにする方法を見つけることができませんでした。

ここで説明されているように、 " - laf"と "--cp:p"引数でLAFを設定しようとしました。

http://javahowto.blogspot.com/2008/05/how-to-customize-netbeans-look-and-feel.html

問題は、サードパーティのLAF JARが依存していることです。NetBeansや他のサードパーティのJARファイルは実行時にたくさんの "class not found"エラーが出ます。技術的にはこれらのクラスは存在しますが別々のモジュールにあります。私はたくさんの "--cp:p"引数でコマンドラインを乱雑にしたくない。

ちなみに、IDEとRCPに同じ名前を付けることで、ソリューションのためのGooglingをより困難にします。

回答:

回答№1の場合は-1

さらにデバッグを行ったところ、LAFモジュールの起動後、RCPがUIManager.setLookAndFeel()をさらに数回呼び出したことが判明しました。これらのその後の呼び出しはLAFをデフォルトにリセットしていました。

" - laf"コマンドライン引数はデフォルトのLAFには影響しませんでした。ただし、 "swing.defaultlaf"システムプロパティを設定しても問題ありません。

解決策は、モジュールのrestore()メソッドのそのシステムプロパティをサードパーティのLAFクラス名に設定することでもありました。