タイトル通り。
本日、Parallelsで運用しているWindowsを「Retinaに最適」にしたところ、Swingアプリケーションのメニューが壊れました。
Parallelsの設定はこれ。
で、これで例えばVisualVMを起動するとこうなります。
本来、メニューが表示されるべき領域が謎の空白地帯に。
Altキーを押すと反応するので(表示は壊れたままだけど)、この空白地帯はメニューの成れの果てのようです。
このままでは話しにならないので調査した所、SwingのルックアンドフィールをWindows以外にすれば良いようです。
ご覧の通りメニューは壊れていて操作不能なので、設定ファイルを直接いじります。
アプリごとに異なるので、僕が普段使うものだけ解説。
SQL Developer
C:\Users[USER]\AppData\Roaming\SQL Developer\system4.2.0.16.260.1303\o.sqldeveloper.12.2.1.16.260.1303
のような場所にあるproduct-preference.xmlの該当箇所を編集します。
<hash n="environment-options"> <value n="internalEncoding" v="UTF-8"/> <!-- Windowsルックアンドフィール以外のものを指定する --> <!--value n="lafClass" v="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/--> <value n="lafClass" v="javax.swing.plaf.metal.MetalLookAndFeel"/> </hash>
残念ながら、SQL Developerの設定を変える毎にこの指定が初期化されてしまうようなので、毎回手で書き戻す必要があります…orz
VisualVM
VisualVMインストール先のetc/visualvm.conf
を編集します。
# 最後に"--laf Metal"を付ける visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m ... --laf Metal"
Astah
~/.astah/community/Jude.properties
の以下の箇所を書き換えます。
# Metalルックアンドフィールを指定 ui.look_and_feel=javax.swing.plaf.metal.MetalLookAndFeel