清除Swing中绘图面板的前景



在编写这个画笔程序时,我决定清除面板容器(链接代码中的panel2)。我使用了PanelName.setForeground(null),它起了作用。我想知道的是,这种方法和其他从容器中删除图形对象的方法是否存在已知的缺点。

如果覆盖paintComponent,则可以使用Graphics#clearRect清除其Graphics。但总的来说,我更喜欢你的方法,因为我的方法需要你为JPanel子类,或者匿名声明一个。

@mre的答案相反,"尊重这个特性取决于外观和感觉,有些人可能会选择忽略它。"我不知道PanelUI会忽略前景色,但在测试时需要注意这一点。

附录:正如@kleopatra所评论的,JComponent@setForeground() API链接到Component#getForeground() API,其中指出:"如果此组件没有前景色,则返回其父组件的前景色。"

相关内容

  • 没有找到相关文章

最新更新