こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Javaアプレット コンポーネントの表示異常

Javaアプレット コンポーネントの表示異常

不特定のPCでAWTのCanvasの表示がおかしくなる現象が起きます。

表示がおかしくなるPCのOSはWinXP SP3です。
JAVAは、1.6_19です。
現在、100台中2台ほど異常が起きるのを確認しています。
異常が起きるPCでは、必ず起きます。

現象は、Canvasの部分が、TVの砂嵐のようになります。まれに、OSの壁紙のような絵も出ます。

このアプレットの画面の構成は次のようになっています。
Canvas
 ↓ADD
Panel
 ↓ADD
ScrollPanel
 ↓ADD
Frame

Canvasには、文字を999行表示しています。サイズでいうと16000ほど。
CanvasとPanelは同じサイズです。
PanelのサイズをCanvasより、100多くした事があるのですが、その時は異常がなくなりました。
しかし、10にしたらまた異常がでました。
ちなみにinsetsのサイズは全て0でした。

この障害の原因がまったく分らないのですが、何が考えられるのでしょうか?

投稿日時 - 2010-07-16 00:03:00

QNo.6041481

困ってます

質問者が選んだベストアンサー

んー

タイミングかしら?

投稿日時 - 2010-07-16 20:33:40

お礼

私も描画処理のタイミングかなという気がしてます。
回答ありがとうございました
(^_^)

投稿日時 - 2010-07-20 09:14:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

すべての、とは言わないけど
いくつかの端末でjava -versionをしてみる。
いろいろ出力される内容が正常に動く端末と異常な端末で一致しているかどうかを確認する。

一致しない=VMの種類を一致させれば直るかもしれない


正常に動く端末と異常な端末のマシン構成(ハードソフトともに)が同じ場合
ハードウェアの異常の可能性がある。
この場合、端末を交換するのが手っ取り早いわね。
どこに異常があるのか分からないし。

投稿日時 - 2010-07-16 10:56:49

補足

VMは全く一致していました。
マシン構成は全く異なります。

しかし、プログラムを1ステップずつ検証していった所、障害原因と修正方法がわかりました。
2つあります。

1つ目は、Canvasのサイズを変更した後で、PanelのValidate()がされていませんでした。
2つ目は、同じくCanvasのサイズを変更した時に、PanelのサイズをsetSize()で同サイズに変更してあるのですが、これが余計な処理だったようです。

この2点を修正したら、全てのPCで表示出来ました。

しかし、PCによって、エラーが出たりでなかったり違いがあったのはなぜなのでしょうか?

投稿日時 - 2010-07-16 18:38:50

あなたにオススメの質問