【问题标题】:Jumping to the method which executes when a Jbutton is clicked while debugging through Intellij跳转到通过 Intellij 调试时单击 Jbutton 时执行的方法
【发布时间】:2019-03-15 12:47:42
【问题描述】:

我正在使用一个具有庞大代码库并使用 Java Swings 创建 GUI 的应用程序。现在我想知道当我在 Intellij 中处于调试模式时单击特定 JButton 时触发的方法或代码部分。这种情况有解决办法吗?

【问题讨论】:

  • 你真的认为如果你调试你的代码,点击一个JButton会触发另一个方法而不是运行它吗?检查 ActionListener 的 actionPerformed 方法
  • 问题是我是 Java 新手,代码库太大,我不知道那个 jButton 的 ActionListener 是在哪里实现的。我只是在想是否有一种方法可以自动向该 JButton 的相应 actionPerformed 方法添加断点。
  • 查看你看到的代码:addActionListener(...) 应该告诉你在哪里可以找到它
  • 无法在该actionPerformed 中自动添加断点。 (不是我见过的)
  • 你需要先在你的代码库中找到JButton,然后再找到它的action handler。如果 JButton 有文本,您可以将其用作在大型代码库中搜索以找到按钮的关联代码的起点。

标签: java swing intellij-idea


【解决方案1】:

在 IntelliJ 中,右键单击项目中最顶部的元素并选择 在路径中查找,然后输入工具提示文本(或该按钮的其他唯一标识文本)。这应该有望找到定义按钮的源代码,然后您可以找到为您的按钮调用addActionListener 方法的位置。这仅在您的源代码包含按钮代码时才有效(即它不是通过 3rd 方库包含的)。

或者,您可以尝试查看 ActionListener 的类层次结构来定位您的按钮的侦听器(在 IntelliJ 中打开类并选择 Navigate > Type Hierarchy 或 Ctrl+H 是默认的键盘快捷键)。这将列出您应用中的所有个实现,因此它可能是一个非常大的列表:

最后,您应该可以在 IntelliJ 中的 ActionListener.actionPerformed 上设置断点。然后调试您的应用并单击您的按钮,它应该会将您带到动作侦听器。

【讨论】:

    猜你喜欢
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多