【发布时间】:2013-03-27 11:28:19
【问题描述】:
我正在根据一些参数和当前选择的菜单项在弹出菜单中修改一些 JMenuItems 的外观。
这是一段伪代码(伪代码,因为它没有展示所有复杂的流程,而只展示了设置菜单项属性的相关部分):
JMenuItem item= new JMenuItem("text");
Border border= calculateBorderForItem();
item.setBorder(border);
[...]
item.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
Color bg= calculateBackgroundForItem();
item.setBackground(bg);
}
}
这适用于默认的 Metal LaF 以及 JGoodies PlasticXP LaF,但不适用于 Nimbus LaF。 Nimbus 只是忽略了所有这些属性。
当我设置item.setOpaque(true) 时,背景被绘制,但边框仍然没有出现。如何强制 Nimbus 使用我的自定义边框?
【问题讨论】:
标签: java swing border nimbus jmenuitem