- - PR -
Java Swingの画面描画
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-07-13 10:47
こんにちわ。
Swingの描画について、聞きたいことがあります。 画面を何時間もそのままの状態で表示させて、ボタンなどで前の画面に戻ると画面全体がグレーになることがあります。 その場合は、タスクに最小化すれば正常な画面に戻ります。 プログラムでは、前画面のJFrameを保持し、ボタンが押されたらsetVisible(true)で 前画面に戻っています。 描画のタイミングなのでしょうか? ご伝授ください。 開発環境 j2sdk1.4.1_02 クライアントPC:OS Windows Xp | ||||
|
投稿日時: 2004-07-13 12:32
ここに書いちゃったら「伝授」じゃなくなっちゃいますが、よろしいですか ? 「Swingで前の画面に戻る」? ほか、これだけの情報では状況がよくわかりませんが、
そうかもしれませんね(そうでないかもしれませんけど)。 そのボタンのリスナーでの処理の後に、再描画スレッドがちゃんと動くようにしてみてください。 | ||||
|
投稿日時: 2004-07-13 13:05
返信ありがとうございます。
簡単な説明でした。詳しくは以下の通りです。 メニュー画面 → 登録画面 何時間か登録画面を表示しておく。(4、5時間以上) 登録画面 → メニュー画面 メニュー画面の内容が表示されず、画面全体がグレーになる。(画面背景色) ちなみに、時間をおかずに登録画面からメニュー画面に戻ったら正常にメニュー画面の内容は表示されます。 | ||||
|
投稿日時: 2004-07-13 14:35
要するに「しょっちゅう切り替えていると大丈夫なのに、しばらく放っておいてから切り替えると画面が崩れる」ということでしょうか ?
私の記憶では 1.4.0、1.4.1 の Swing はマウスのアクションイベントを取り逃したり、描画が重かったりとダメダメでしたので、(開発/利用 両方の)環境を 1.4.2 へ変更されると解決するかもしれません(しないかもしれません)。 参考: http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=889&forum=12 また、グラフィックドライバの不具合であることもありますので、そちらもチェックしてみてください。 実は私も、数時間起動しっぱなしの Swing アプリのレイアウトが崩れてしまう現象(そして勝手に直ることもある)に悩まされています。グレー一色と現象は違いますが、メモリか何かのリソースがリークしているかもしれません。 # 再現性とかよくわかっていないので Bug Parade に報告できていません。 | ||||
|
投稿日時: 2004-07-21 16:49
お久しぶりです。
JFrame画面の不可視状態が長く続くと、可視にした時に画面全体がグレー一色になります。 開発環境を1.4.2に変更してみましたが、やっぱり同じ現象が起きます。 動作PCもNEC、DELLのどちらで検証しても起きます。 ちなみに、1.4.1_02の環境でOSがNTだと現象は起きませんでした。(丸1日表示) LookAndFeelをOracleの概観で設定しているのですが、その影響もあるのでしょうか? 引き続き調査するしかないですね。 | ||||
|
投稿日時: 2004-07-21 17:17
unibon です。こんにちわ。
Java アプリケーションの作りの問題と、Java の側の問題の2通りが考えられますが、後者の問題かどうかを調べるために、起動時のオプションに -Dsun.java2d.noddraw=true を指定してみてはどうでしょうか。noddraw をキーワードにして検索するといろいろとヒットします。 また、Java アプリケーションの作りの問題かどうかは、挙動の詳細やコードを見ないと断言できないのですが、「グレー一色」の状態で repaint させると回復するでしょうか。たとえば、一旦、そのアプリケーションのウィンドウを「最小化」してから「元のサイズに戻す」などして。 | ||||
|
投稿日時: 2004-07-23 10:59
unibonさん、こんにちわ。
起動オプションに-Dsun.java2d.noddraw=trueを追加して実行しました。 昨日から画面を表示させて、今日確認をしたところ正常に画面が可視されました。 これから数回テストして確認します。 返答してくださった方(びしばし、unibon)、ありがとうございます。 | ||||
1
