2012-08-20 17 views
18

Utrzymuję niektóre kody narzędzi dostosowanych Look and Feel w Javie. Robiąc najnowsze uaktualnienie wersji Java (z innych powodów) Okazało się, że wygląd i wybuchła z powodu pola nie znaleziono naJava Look and feel - jak przełamać zależność od sun.swing.SwingUtilities2

sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET; 

to w klasie, która jest ściśle oparty na BasicMenuItemUI.layoutMenuItem() ok Java 6u02 (here's the source). Odkryłem, że Oracle ponownie uwzględniło swój kod, dodając MenuItemLayoutHelper w nowej docelowej wersji, której używam, Java 6u31.

Mogę po prostu użyć MenuItemLayoutHelper, ale to nie rozwiązuje problemu, który po prostu wyłącza, dopóki następnym razem nie zostaną zmienione wewnętrzne elementy Java. Dlatego zdyskontowałem to jako rozwiązanie.

Jestem po doradzić, w jaki sposób uzyskać od lewej do prawej układzie podobnym do BasicMenuItemUI bez konieczności wiedzieć maksymalna tekst rodziców przesunięcie (usuwając złe zależność sun.swing.SwingUtilities).

+17

prawdopodobnie nie jest opcją, aby złapać osobę, która wprowadziła tę zależność, zamknąć ją w pokoju, dopóki wszystko nie zostanie naprawione :-) Pod koniec dnia nie ma wiele do roboty ... z wyjątkiem ... kaszlu .. c & p, ehh, mam na myśli spojrzenie na kod słońca i wdrożenie wersji refaktoryzowanej. – kleopatra

+9

@kleopatra Moja mama ostrzegła mnie ** nie **, aby "patrzeć na słońce". (muza) Ona nie wspomniała o "kodzie" chociaż .. –

+0

Ou ... to jest dziecko plakatu do egzekwowania standardów kodeksu czasu budowy. – Gus

Odpowiedz

4

Jak powiedział albfan, nie można. Musisz polegać na kodzie, skopiować klasę i używać go w swoim programie, nie używać go w ogóle i używać biblioteki innej firmy lub nie używać tej funkcji.

2

OK, może minęło trochę czasu, ale doszedłem do wniosku, że mógłbym użyć własnej stałej zamiast sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET, o ile był konsekwentnie używany w kodzie naruszającym prawa. W żadnym wypadku nie jest to idealne rozwiązanie.

Z drugiej strony złe przywóz z pakietów przeciwsłonecznych przeszedł do sprawdzania reguł kodowania.