我的任务是在 Java/Swing 应用程序中实现新的最终用户功能。实施的任务相对容易和直接。麻烦的是要修改现有的应用程序。
它由几十个类组成,这些类经常突破 2000 行,有时甚至达到 10000 行。文档不存在,阅读所有源代码以了解它的大图是不可行的。
该应用程序本身基本上是一个用于绘制图表(例如流程图)的 GUI 工具,并且是开源的(如果有帮助,我可以发布指向源代码的链接)。
到目前为止,我已经设法将源代码导入 Eclipse 项目并使用 SwingExplorer 插件来识别一些 GUI 组件。
应用程序中最“有趣”的部分是绘制图表的画布。它被实现为一个继承自 JComponent 的类(大约 9700 行长)。在 SwingExplorer 中无法选择显示图表的部分:整个画布仅被识别为上述类的单个实例。因此,我猜测这个庞大的单个类负责处理图表的所有用户交互和 AWT 绘图操作,并仅返回某种图像缓冲区来显示(但这是一个巨大的猜测)。
我的修改涉及在画布上绘制图表时对图表进行计算。因此它将是一个新类,它将在创建图表的特定元素期间接收和处理广播的事件,然后对它们进行一些计算。
我的主要问题是:如何调试事件流?如何在绘制图表时遵循执行流程,查看生成、处理了哪些事件,并了解正在绘制的对象在内存中的位置?
我知道这个问题可能看起来太笼统了,但我真的一无所知,正在寻找一个起点。
提前感谢您花时间阅读;)问候,马可