2012-08-20 14 views
18

私はJavaでカスタマイズされたルックアンドフィールを実装するいくつかのコードを維持しています。 (他の理由のために)Javaバージョンの最近のアップグレードを行っている間、私は、ルックアンドフィールは、これが密接BasicMenuItemUI.layoutMenuItem()年頃のJava 6u02(基づいているクラスであるため、Javaルックアンドフィール - sun.swing.SwingUtilities2への依存を解除する方法

sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET; 

に見つからないフィールドに破ったことがわかりましたhere's the source)。私は、オラクルがコードを再入力して、私が使用している新しいターゲット・バージョンであるJava 6u31にMenuItemLayoutHelperを含めることを発見しました。

私はちょうどMenuItemLayoutHelperを使うことができましたが、次回Java内部が変更されるまで問題を解決しません。したがって、これを解決策として割り引いています。

BasicMenuItemUIに似た、左から右へのレイアウトを達成する方法については、親の最大テキストオフセット(sun.swing.SwingUtilitiesの悪い依存関係を削除する)を知る必要はありません。

+17

おそらく、その依存関係を導入した人をつかむためのオプションではなく、すべてが固定されるまで彼女を部屋に閉じ込めることができます:-)その日の終わりに、 .. c&p、ehh、私は太陽のコードを見て、リファクタリング版を実装することを意味します。 – kleopatra

+9

@kleopatra私のお母さんは私に警告しなかった** "太陽を見て"。彼女は "コード"とは言いませんでした。 –

+0

これは、ビルドタイムコードの標準化のためのポスターの子です。 – Gus

答えて

4

albfanが言ったように、あなたはできません。コードに依存したり、クラスをコピーしてプログラムで使用したり、第三者のライブラリを使用したり、その機能を使用したりしないでください。

2

これはしばらくお待ちいただいているかもしれませんが、問題のコードで一貫して使用されていれば、sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSETの代わりに自分の定数を使用できます。決して理想的なソリューションではありません。

サンパッケージからの不正なインポートがコーディング規則のチェックに入っています。

関連する問題