在java中,图形绘制在UI之上,

时间:2014-01-22 03:20:38

标签: java swing jpanel paint

当我在 paint() 方法中绘制Jpanel时(通过继承JPanel)
图形显示在我的按钮和其他UI组件的顶部,
在组件不可见, 那么如何在图形之上绘制组件

1 个答案:

答案 0 :(得分:2)

首先看看Performing Custom PaintingPainting in AWT and Swing

  

绘制方法
适用于AWT轻量级组件的规则   也适用于Swing组件 - 例如,paint()被调用   什么时候渲染 - 除了Swing进一步因素   paint()调用三个单独的方法,这些方法在   以下顺序:
  
protected void paintComponent(Graphics g)
protected void paintBorder(Graphics g)
protected void paintChildren(Graphics g)

     

Swing程序应覆盖paintComponent()而不是覆盖paint()。尽管API允许,但通常没有   覆盖paintBorder()paintComponents()的理由(如果你这样做,   确保你知道你在做什么!)。这种因子分解使其更容易   程序只覆盖他们的绘画部分   需要扩展。例如,这解决了所提到的AWT问题   之前无法调用super.paint()的任何人阻止任何   出现轻量级儿童。