在Swing中清除绘图面板的前景

时间:2012-08-28 11:42:08

标签: java swing graphics jpanel

制作this画笔程序我决定要清除面板容器(链接代码中的panel2)。我使用PanelName.setForeground(null)并且它有效。我想知道的是,这种方法是否存在已知的缺点以及从容器中删除图形对象的其他方法。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

与@ mre的回答相反的是“这取决于尊重这个property的外观和感觉,有些人可能会选择忽略它。”我不知道忽略前景色的PanelUI,但在测试时需要注意的事项。

附录:@kleopatra评论时,JComponent@setForeground() API会链接到Component#getForeground() API,其中包含以下内容:“如果此组件没有前景色,则其父级的前景色为返回。“