0
JPopupMenuのMenuItemの背景色の指定について
数日前にjdk1.8.0_172からjdk-10.0.1に変更しました。
ルック&フィールをNimbusにしていますが、jdk1.8.0_172ではJPopupMenuのJMenuとMenuItemの背景色をColor.ORANGEと指定してJMenu、MenuItem共に以下のコードで問題なく表示できていました。
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
UIManager.getLookAndFeelDefaults().put("PopupMenu[Enabled].backgroundPainter",new FillPainter(Color.ORANGE));
break;
}
}
} catch (Exception e) {
}
その後ルック&フィールはNimbusのままでjdk-10.0.1に変更し実行してみるとJMenu、MenuItemの背景色はグレー表示となっていました。
そこでネット検索で「Java JPopupMenu Nimbus BackgroundColor」として調べ、サンプルコードを参考に上記のコードを削除して以下のようにコードを書いてみたところJMenu、MenuItemの背景色をColor.ORANGEで表示することは出来ましたが、MenuItemの上端と下端がグレー表示となります。
JPopupMenuに以下のコードを追加
//ポップアップメニューの背景色をオレンジ色に
public void paintComponent(final Graphics g) {
g.setColor(Color.ORANGE);
g.fillRect(0,0,getWidth(), getHeight());
}
MenuItemに以下のコードを追加
//ポップアップメニューのメニューアイテムの背景色をオレンジ色に
setOpaque(true);
setBackground(Color.ORANGE);
MenuItemの上端と下端をColor.ORANGEとして表示するにはどうしたら良いのか教えてください。
どうかよろしくお願いします。