2010-12-27 12 views
2

私はいくつかのシミュレーションコードを書いており、私のモデルが期待通りに動くように管理しています。しかし、私がモデルをリセットすると(他人が書いた大量のコードの上に座っていますが、今アクセスできません)、再実行するには問題があります。Java GUIアプリケーションでリセット機能のコードをデバッグする方法はありますか?

私はサイトの記事を読むことから収集したものから、エラー後にnullポインタ例外とAwt-queueエラーが発生します。リセット後にグラフィック要素が問題に陥っているためです関連はもはや有効ではない)。

0-シミュレーションコードでリセットボタンを押したときに一般的に起こることはありますか?私は(希望)誰もが彼らの宿題を正しくやっていると思うので、私はこのことについて知らないので、私はすべてをうまく動作させるために自分自身をきれいにする必要がある。

1 - 今すぐコードを再実行した後に起こるこの種の問題を修正する最も簡単な方法は何ですか?

2シミュレーションの実行後にコードをクリーンアップするための一般的なガイドラインは何ですか?

+3

私は質問をよく受けませんでした。あなたのコードは実行時に実際に変更されていますか?それとも、それを違うのですか? –

+0

Btw、あなたが書いた部分のソースコードはありますか?あなたはそれを変更することはできないと言いましたが、少なくともそれを見ることができれば、デバッガを突き抜けて実際に何が起こるか見ることができます。 –

+0

コードが実行されても変更されません(私はこれを正しく理解しています)。最初のすべてが正しいことを実行します。私がそれを閉じて、すべてを再実行すると大丈夫です。しかし、GUIを使ってモデルをリセットした場合、ヌルポインタとawtエラーが発生します。これは、不適切なクリーンアップに関連して理解できるものからです。 – blackace

答えて

0

私はアイテム0と2の回答を知らないので、寄稿を感謝します。

私はちょうど問題が何であるかを理解しました。 GUIは適切にリフレッシュされていないので、最初の実行がもう存在しないため、あらゆる種類の奇妙なエラーがスローされた「クリーンアップ」アイテムを参照していました...

0

ああ、OKです。私はどこに問題があるのか​​はっきり言えませんが、私は以前にそのようなバグを修正するというあいまいな記憶を持っています。私はそれがグラフィカルなコンポーネントの "空の"値という概念と関係があると思う。つまり、nullを値としてサポートしていませんでした。

例外のスタックトレースを調べ、クラスの一部(AWT、Swing、その他の基礎クラスではない最初のもの)が見えるまで読み込みます。次に、これらの特定のクラスのスタックトレースに書き込まれた行番号を見てください。

すぐにその行の例外を引き起こしたことが明白でない場合は、コードを見て(たぶん多くの場合があります)、数行前にブレークポイントを設定し、デバッガ。うまくいけば、何が間違っていたのかは明らかです。

これは、このようにエラーをデバッグする方法です。それが役に立てば幸い。

関連する問題