2016-03-28 9 views
0

2つのJFramesで構成されるJavaアプリケーションがあります。 1つはプレビューにのみ使用され、カスタムJComponentが格納されます。他のフレームは、プレビューの出力を制御するいくつかの入力フィールドで構成されています。Mac OSXでJava JFrameがリフレッシュされない

私はpreviewRendererが他のJFrameのカスタムJComponentのです

previewRenderer.update(previewRenderer.getGraphics()); 

を使用してカスタムのJComponentの再描画を強制するさまざまな入力フィールドのアクションリスナーを持っています。

これはLinuxの& Windowsではうまくいきますが、Mac OSXでは2番目のJFrameはまったく更新されませんでした。

私はテストのために手元にOSXマシンを持っていませんが、それぞれ別のフレーム、それぞれカスタムJComponentの再描画を強制する方法はありますか?

ありがとうございました。

+0

スレッドの問題である可能性があります。ビューに接触するすべてのコードがイベントディスパッチスレッドで実行されていることを確認していますか? – BPS

答えて

2

を使用すると、プレビュー枠のコンポーネントに行っている変更内容に応じて、

previewRenderer.repaint() 

または多分

previewRenderer.repaint() 
previewRenderer.revalidate() 

に変更してみてください。

+0

previewRenderer Compponentには、呼び出す必要のある特別なpaintメソッドがあります。 – xuma202

+0

これをどのように実装したかわかりませんが、これらのメソッドは適切なメソッドを呼び出して、コンポーネント全体を強制的に塗りつぶし/再描画するので、正常に動作するはずです。しかし、すでに試したことがありますか? – gustf

+0

はい、それはLinuxで動作しますが、まだMac OS Xでテストすることはできません。私はこれをMac上で動作させる必要があります。 – xuma202

関連する問題