我在JFrame
中添加了一个JLayeredPane
。在上述窗格中,我添加了一个带有重载paintComponent(Graphics g)
方法的JComponent
,该方法调用super.paintComponent(g)
等。JComponent
在其构造函数中还具有setBackground(Color.RED)
和setBounds(0, 0, 100, 100)
。
问题是,JComponent
似乎根本没有被绘制出来。但是,如果我将由JComponent
扩展的类更改为JPanel
,它就可以正常工作。
这有关系吗?我想知道为什么它会这样工作,当我不关心它的添加时,扩展JPanel
似乎只是不必要的开销。
谢谢你抽出时间。
JComponent也有setBackground(Color.RED(
单凭这一点也无济于事。
JComponent没有默认的绘制代码,因此调用super.paintComponent((不会导致绘制任何背景。
如果你想绘制背景,你需要添加自己的自定义绘制代码:
g.seColor( getBackground() );
g.fillRect(0, 0, getWidth(), getHeight());