I’ve added a
JLayeredPane to a
JFrame. To said pane i’ve added a
JComponent with overloaded
paintComponent(Graphics g) method, which calls
super.paintComponent(g) among other things. The
JComponent also has
setBounds(0, 0, 100, 100) in its constructor.
The problem is, the
JComponent isn’t being drawn at all it seems. However, if i change the class being extended by the
JPanel, it works just fine.
Does it matter at all? I would like to know why it works this way, it seems like extending
JPanel when i don’t care for its additions is just unnecessary overhead.
Thanks for your time.
The JComponent also has setBackground(Color.RED)
On its own that will do nothing.
A JComponent has no default painting code, so invoking super.paintComponent() will NOT cause any background to be painted.
If you want to paint the background you need to add your own custom painting code:
g.seColor( getBackground() ); g.fillRect(0, 0, getWidth(), getHeight());