2011-08-09 8 views
3

私はJScrollPaneを列ヘッダーと行ヘッダーと共に使用しようとしています。JScrollPaneは、行ヘッダのグラフィックスグリッチを表示します。これを避ける方法は?

行ヘッダーにはテキストがあります。ペインを下にスクロールすると、いくつかのグラフィックアーチファクトが行ヘッダーに表示されます。それはピクセルのボトムラインが何度も繰り返されるようなものです。

メインウィンドウを最大化して元に戻すと問題は解決しますが、そうではありません。

これを避ける方法はありますか?

+5

問題は、行ヘッダーのカスタムペイントコードにあります。問題を示す[SSCCE](http://sscce.org)を投稿してください。 – camickr

+3

推測:行ヘッダーでカスタムペイントを行う場合は、paintメソッドでsuperメソッドを呼び出しますか?つまり、ペイントをオーバーライドすると、 'super.paint(g)'を呼び出しますか?同様にpaintComponent/super.paintComponentも同様です。私はcamickrに同意しますが、これが役に立たない場合はSSCCEを提示してください。 –

+0

ありがとうございます。あなたが正しいです。カスタムペイントコードには何かがありました。コンポーネントの推奨サイズを設定する行を追加して修正しました。 – javier

答えて

0

このような不具合は通常、カスタムpaint()メソッドによって発生するか、変更後に再描画されないことがわかります。

まず、カスタムペイントメソッドの最初の行として常に呼び出します。

super.paint(); or super.paintComponent(g); 

また、これらの2つの行はすべて新鮮で最新のものです。時間がかかるかもしれませんが、多くの問題を解決しました。私は通常、ビューを変更するコードの最後に配置します。

this.validate(); 
this.repaint(); 
+2

ランダムメソッド呼び出しによるシンプトンの作成は推奨されていません - 代わりに、エラーを見つけて修正してください – kleopatra

関連する問題