私は、Javaでカスタマイズされたルックアンドフィールを実装するいくつかのコードを維持しています。Javaバージョンの最近のアップグレードを行っているときに(他の理由で)、フィールドが見つからないためにルックアンドフィールが壊れていることがわかりました
sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET;
BasicMenuItemUI.layoutMenuItem()
これは、 Java 6u02頃に密接に基づいているクラスにあります(これがソースです)。OracleがコードをMenuItemLayoutHelper
リファクタリングして、使用している新しいターゲットバージョンであるJava6u31にを含めるようにしました。
私はただ使用することができましたMenuItemLayoutHelper
が、それは問題を解決しません。それは、次にJava内部が変更されるまでそれを延期するだけです。したがって、私はこれを解決策として割り引いています。
親の最大テキストオフセットを知る必要なしに、同様の左から右へのレイアウトを実現する方法についてアドバイスを受けていBasicMenuItemUI
ます(sun.swing.SwingUtilitiesへの悪い依存関係を削除します)。