更改其中的 JMenuBar 和 JMenu 对象的背景和文本颜色

新手上路,请多包涵

如何为 JMenuBarJMenu 对象设置自定义背景颜色?我试过了 .setBackgroundColor 但它不起作用!

原文由 KernelPanic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 920
2 个回答

创建一个扩展 JMenuBar 的新类:

 public class BackgroundMenuBar extends JMenuBar {
    Color bgColor=Color.WHITE;

    public void setColor(Color color) {
        bgColor=color;
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(bgColor);
        g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1);

    }
}

现在您使用此类而不是 JMenuBar 并使用 setColor() 设置背景颜色。

原文由 D180 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可能需要更改菜单项的不透明度,即:

 JMenuItem item= new JMenuItem("Test");
item.setOpaque(true);
item.setBackground(Color.CYAN);

您还可以使用 UIManager 在全球范围内实现这一点,例如:

 UIManager.put("MenuItem.background", Color.CYAN);
UIManager.put("MenuItem.opaque", true);

原文由 tenorsax 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题