我正在创建游戏(蛇克隆)作为爱好。我正在查看Java API中图形类别的Dispose方法。当我评论Dispose方法时,我的动画的运作方式都可以。在Java API中,Dispose方法可以做到这一点 - 释放图形上下文所使用的系统资源。Java垃圾收集是否管理程序的内存类似于处理的操作?我应该保留处理方法吗?
API在解释同步方法方面没有太大帮助。但是,从我在其他论坛中阅读的内容来看,工具包类中的同步方法是确保绘图操作(例如我想的PaintComponent方法)将其冲洗到图形卡上。因此,图形卡的工作是清理程序的先前图形上下文的任何遗迹吗?
这是代码:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
当涉及Graphics
时,有一个简单的原理。
如果您明确创建它(例如BuffereImage.createGraphics()
),则将其处置。
paintComponent(Graphics g)
中的 OTOH实例g
由工具包提供,并在需要时处置。在您自己的代码中这样做会导致"无法预测"的渲染。