Java swing渲染优化

时间:2011-07-02 19:32:03

标签: java swing optimization rendering

据我所知,Java的原生swing UI元素进行了大量的渲染优化,因此效果更好。也就是说,如果我有一个自定义的JPanel(意思是,我已经覆盖了它的paintComponent方法):

  1. 是否仍会执行渲染优化(我希望如此)?
  2. 我可以手动告诉其父容器何时重新绘制JPanel?换句话说,我可以冻结JPanel的重新渲染,直到明确告诉它吗?
  3. 如果是这样(#2),我可以告诉它只重绘JPanel的特定部分(智能绘画,我认为它被称为......)?
  4. 最后,重新渲染JPanel是否能够处理JPanel的透明度,圆角或其他非矩形形状? (意思是它会重新渲染JPanel下面的元素,我猜)
  5. 如果没有,是否有替代伪造技术? (最好只是我可以阅读的源/参考链接)

1 个答案:

答案 0 :(得分:1)

为了加快渲染速度,您可以使用BufferedImage。在图像的图形上渲染一次内容并使用图像而不是渲染所有内容。

要渲染面板的一部分,请使用Graphics的setClip()/ getClip()检查哪个区域必须刷新并仅绘制部分。

要绘制非矩形对象,请使用相同的setClip设置必要的Shapes。