JComponent未绘制在JLayeredPane上,JPanel为



我在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());

最新更新