【问题标题】:Where can I find the source code of the "build" classes in Java?在哪里可以找到 Java 中“构建”类的源代码?
【发布时间】:2010-01-27 14:30:55
【问题描述】:

在我的 Java 代码开头:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.*;

然后我有以下内容:

public class KeyEventDemo extends JFrame
        implements KeyListener,
        ActionListener

我试图了解代码的作用。我从头开始。例如,我想知道定义了 JFrame 类(我认为它属于“java.awt.event”或“javax.swing”包。我也想看看定义了 KeyListener 接口。

我的问题是不知道在哪里可以找到对应的源代码。我尝试了以下方法:

locate event | grep awt

什么也没找到。任何人都可以帮助我们吗?拜托。

【问题讨论】:

    标签: java class packages location


    【解决方案1】:

    您是否可以访问 IDE(例如 Eclipse 或 Intellij)?它将极大地帮助您浏览您的代码以及 JDK 的代码。如果您还没有使用,我强烈推荐它。

    对于您的特定问题,awt 类是 JDK 包的一部分。您将需要 JDK 源代码。可以下载第6版源码here

    【讨论】:

      【解决方案2】:

      源代码并不总是随 java 一起提供,只是编译的类。但是,您实际上并不需要源代码,您需要使用的接口/类的描述。这些被称为 API 文档。

      这里是 java 5 的 java api 文档: http://java.sun.com/j2se/1.5.0/docs/api/

      【讨论】:

        【解决方案3】:

        通常有一个名为 src.zip 的文件,其中包含所有源代码 - 尝试解压缩该文件,或将 IDE 指向它,然后查看。

        【讨论】:

          【解决方案4】:

          源代码通常可以在一个名为src.zip 的文件中找到,该文件位于您的 JDK 安装目录中。至少 Sun JDK 是这样。

          【讨论】:

            【解决方案5】:

            除非你从提供代码的网站下载,否则你看不到它的代码。

            您可以使用 Decompiler 从构建文件中查看代码

            【讨论】:

              【解决方案6】:

              要考虑的一件事是,使用诸如

              之类的导入通常被认为是不好的做法
              import javax.swing.*;
              

              请尝试:

              import javax.swing.JFrame;
              

              并为您需要的每个类执行一个导入语句。这提高了可维护性。它还将帮助您准确确定需要在 API 中查找哪些类。我绝对同意您应该从源代码的 API 开始。根据我的经验,Swing 源代码的导航比 Swing Javadoc 更复杂。您要做的是查看 JFrame、KeyEventListener 和 ActionListener 的 Javadoc。 Sun 的Swing Trail 也有助于了解原因和原因,尤其是在涉及事件时。

              【讨论】:

                猜你喜欢
                • 2010-12-19
                • 2011-02-23
                • 2010-09-10
                • 2011-09-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多