制作这个画笔程序,我决定我要清除的面板容器( panel2
在链接的代码)。 我用PanelName.setForeground(null)
和它的工作。 我想知道的是,如果有已知的这种做法,从容器中取出的图形对象的其他方面的缺点。
Answer 1:
如果重写paintComponent
,可以清除它的Graphics
使用Graphics#clearRect
。 但总体而言,我更喜欢你的方法,因为我的需要,你要么子类JPanel
,或匿名申报一个。
Answer 2:
@ MRE的回答,相反的是,“这是由外观和感觉兑现这个属性 ,有些人可能会选择忽略它。” 我不知道的PanelUI
忽略前景色,但它的东西要注意测试时的感觉。
附录:作为@kleopatra意见, JComponent@setForeground()
API链接到Component#getForeground()
API,它指出了以下内容:“如果此组件没有前景色,则返回其父级的前景色”
文章来源: Clear foreground of a drawing panel in Swing