Change background and text color of JMenuBar and JMenu objects inside it
java, jmenu, jmenubar, look-and-feel, swing
Solution
Create a new class that extends `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);
}
}
Now you use this class instead of `JMenuBar` and set the background color with `setColor()`.
Problem
How can I set custom background color for `JMenuBar` and `JMenu` objects inside it? I tried `.setBackgroundColor` and it does not work!