2009-06-11 27 views
5

私はJavaのrepaintメソッドを使用して再描画しますが、キャンバスをクリックするか、パネルのサイズを変更した場合にのみ更新が表示されます。これをどうすれば解決できますか?何が原因ですか?Javaの再描画が正しく機能しない

+4

コードを教えてください。または私たちが推測することを望みますか? –

+0

標準のSwingコンポーネントのみを使用していますか?カスタムコンポーネントを作ったことがありますか? –

+0

スイング? AWT? SWT?私たちは役に立つ答えを得るためにもっと多くの情報が必要です。 –

答えて

15

メソッドrevalidate()を呼び出す必要があります。これにより、レイアウトマネージャはすべてのコンポーネントを更新/再描画します。

2

repaint()は実際には再ペイントしていませんが、を要求してにコンポーネントの再描画を要求しています。

0

塗りたいコンポーネントからGraphicsオブジェクトを単に取り込むと便利です。次に、Graphicsオブジェクトでpaintメソッドを呼び出します。たとえば、

g = component.getGraphics(); 
draw(g); 
+0

これは実際にスイングスレッドに既にあるときに非常に便利です – aepurniet

関連する問題