私は趣味でゲーム (Snake Clone) を作成しています。Java API の Graphics クラスの dispose メソッドを見ていました。dispose メソッドをコメント アウトすると、私のアニメーションは、dispose メソッドの有無にかかわらず同じように機能します。Java API では、dispose メソッドがこれを行い、グラフィック コンテキストが使用しているシステム リソースを解放します。Java ガベージ コレクションは、dispose と同じようにプログラムのメモリを管理しませんか? dispose メソッドを保持する必要がありますか?
API は、同期方法を説明するのにあまり役に立ちませんでした。しかし、私が他のフォーラムで読んだことから、ToolKit クラスの sync メソッドは、描画操作 (私が推測する paintComponent メソッドなど) がグラフィックス カードに確実にフラッシュされるようにすることです。では、グラフィック カードの仕事は、プログラムの以前のグラフィック コンテキストの残りをクリーンアップすることですか?
コードは次のとおりです。
public void paintComponent(Graphics g) {
super.paintComponent(g);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}