Java/Swing アプリケーションに新しいエンドユーザー機能を実装するタスクを与えられました。実装するタスクは比較的簡単で簡単です。面倒なのは、既存のアプリを変更することです。
これは、多くの場合 2000 行の障壁を破り、時には 10000 行に達する数十のクラスで構成されています。ドキュメントは存在せず、すべてのソース コードを読んで全体像を把握することは不可能です。
アプリ自体は、基本的に図 (フローチャートなど) を描画するための GUI ツールであり、オープンソースです (ソース コードへのリンクが役立つ場合は投稿できます)。
これまでのところ、ソース コードを Eclipse プロジェクトにインポートし、SwingExplorer プラグインを使用していくつかの GUI コンポーネントを特定することができました。
アプリの最も「興味深い」部分は、ダイアグラムが描画されるキャンバスです。JComponent を継承する単一のクラス (約 9700 行) として実装されます。表示されたダイアグラムの一部を SwingExplorer で選択することはできません。キャンバス全体は、前述のクラスの単一のインスタンスとしてのみ識別されます。したがって、この巨大な単一クラスがすべてのユーザー操作とダイアグラムの AWT 描画操作を処理し、何らかの種類の画像バッファーを表示用に返すだけだと思います (ただし、これはかなりの推測です)。
私の変更には、キャンバスに描画されているダイアグラムで計算を行うことが含まれます。したがって、ダイアグラムの特定の要素の作成中にブロードキャストされたイベントを受信して処理し、それらに対して何らかの計算を行う新しいクラスになります。
私の主な問題は、イベントフローをデバッグする方法ですか? ダイアグラムを描画するときに実行の流れをたどり、どのイベントが生成、処理されるかを確認し、描画されているオブジェクトがメモリ内のどこにあるかを知るにはどうすればよいですか?
この質問が一般的すぎるように思えるかもしれませんが、私は本当に無知で、出発点を探しています.
時間を割いて読んでくれてありがとうございます ;) よろしく、マルコ