在Swing绘图板的清晰前景(Clear foreground of a drawing panel

2019-09-21 18:46发布

制作这个画笔程序,我决定我要清除的面板容器( 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