如何解决JComponent未在JLayeredPane上绘制,因此JPanel是
我已将JLayeredPane
添加到JFrame
。在上述窗格中,我添加了一个带有重载JComponent
方法的paintComponent(Graphics g)
,该方法除其他外还调用super.paintComponent(g)
。 JComponent
的构造函数中还包含setBackground(Color.RED)
和setBounds(0,100,100)
。
问题是JComponent
似乎根本没有被绘制。但是,如果我将由JComponent
扩展的类更改为JPanel
,则可以正常工作。
这有关系吗?我想知道为什么它会这样工作,当我不在乎扩展JPanel
时,似乎只是不必要的开销。
感谢您的时间。
解决方法
JComponent还具有setBackground(Color.RED)
单靠它是无能为力的。
JComponent没有默认的绘制代码,因此调用super.paintComponent()不会导致绘制任何背景。
如果要绘制背景,则需要添加自己的自定义绘制代码:
g.seColor( getBackground() );
g.fillRect(0,getWidth(),getHeight());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。