Java - 重新绘制特定组件

时间:2013-11-29 01:08:57

标签: java swing user-interface paintcomponent

我正在学习Java作为我学位的一部分,但它非常简短,但我喜欢做什么,以确保我至少有一些理解。

到目前为止,我希望在屏幕上显示的任何内容都放入paintcomponent的{​​{1}}方法中。

但是,我已经绘制了我的布局的一些部分,这些部分永远不会改变,只有中间的某个部分会旋转。 我有一个调用JPanel的计时器。

如果我认为包括永不改变的组件在内的所有内容都被删除然后重新绘制并且每次都运行整个repaint()方法,那么我是正确的。

对我来说,我觉得我应该(或必须有)将静态内容移出/仅绘制一次的方式,并且只有我特别想要重绘的部分应保留在{{1}中方法?

这是正确的还是我不完全理解某事?

1 个答案:

答案 0 :(得分:2)

  • 我假设您没有在paintComponent方法中添加GUI组件,对吧?
  • 重绘期间未删除组件
  • 最好将任何图像的稳定部分放入单个背景BufferedImage中,并在paintComponent方法中绘制BufferedImage。这可以提高绘画效率。
  • 考虑调用repaint(...)的重载,为要绘制的区域设置边界矩形。