私のプロジェクトはマルチスレッドとグラフィックに基づいています。問題は、repaint()メソッドを呼び出すことです。私はrunnableを実装するクラスsecondからrepaintメソッドを呼び出そうとしており、paint()メソッドはCanvasを最初に拡張したクラスにあります。しかし、仕事を再開しないでください。 どうすればよいですか?マルチスレッドとグラフィック
のthnx
私のプロジェクトはマルチスレッドとグラフィックに基づいています。問題は、repaint()メソッドを呼び出すことです。私はrunnableを実装するクラスsecondからrepaintメソッドを呼び出そうとしており、paint()メソッドはCanvasを最初に拡張したクラスにあります。しかし、仕事を再開しないでください。 どうすればよいですか?マルチスレッドとグラフィック
のthnx
Component.repaint()
方法は、特にスイングの下でのみ再描画を必要とするように、コンポーネントをマークし、それは実際に直接再描画をトリガしません。
Thread.yield()
を呼び出すことによって他のスレッドを実行できるようにしてください。これは、コンポーネントを実際に確認して再描画が必要なものを実際に確認するメインのグラフィックスレッド(他のスレッドを起動しました)です。
あなたがJComponent
のpaintComponent(...)
メソッドをオーバーライドし、代わりにpaint(...)
メソッドをオーバーライドするの、それをペイントした場合には、その代わりにCanvas
を使用しての、ずっと賢明だろう。
良いアドバイス; "Swingプログラムは' paint() 'をオーバーライドするのではなく' paintComponent() 'をオーバーライドする必要があります。" - [AWTとSwingのペイント:ペイントメソッド](http://java.sun.com/products/jfc/ tsc/articles/painting/index.html#callbacks)。 – trashgod
問題の懸念事項について[SSCCE](http://sscce.org/)の一部が高く評価されます:-) –