【问题标题】:What does the "J" in JApplet mean?JApplet 中的“J”是什么意思?
【发布时间】:2009-03-20 07:27:50
【问题描述】:

JApplet 中的“J”是什么意思?

【问题讨论】:

    标签: java applet


    【解决方案1】:

    当 Sun 开始研究 Swing 时,他们有 javax.swing.Button 之类的东西。这会导致使用 java.awt.Button 的程序出现问题。如果我没记错的话,主要问题是编译器错误消息令人困惑。

    Sun 决定在所有 Swing 组件前加上 J 以消除此问题。

    最初 swing 被称为 JFC - Java Foundation Classes...大概 J 就是从那里来的。

    IFC from Netscape 是 JFC 的基础...同一团队开发了两者。
    团队从 Netscape 搬到了 Sun。
    J 在第一次向被许可人投放源时就在那儿(我是我公司收到投放的人)。

    JClass BWT 和 IFC(后来成为 JFC,后来成为 Swing)也不兼容……“Can I use BWT controls in an IFC environment?

    编辑:回复 Swing 团队成员的电子邮件...

    “非 J 的名字已经被占用了 通过 AWT,我们认为它很有用 一个共同的前缀来区分 来自其他类的“组件” 包。”

    已经参与的部分与我所说的编译器匹配,但没有确认。

    【讨论】:

    • 很好的尝试,但我没有找到一个与这种“混乱”相关的错误(在太阳)。然而,我确实发现(当时)KL Group 提到的 JClass 被集成到 Swing 中。所以-1。
    • [幽默] 有点提醒我在stackoverflow.com/questions/432922/… 时我面对的“猜测真的不如查资料”。
    • 这不是错误...可能在 java usenet 组或发行说明上,或者可能是在我与 JFC 团队的一次会议上...已经 10 年了以前...抱歉,我不记得我看到它的确切地点了。
    • 嗯...看起来我即将成为“Alan Kayed”。再次。好吧,有疑问我尝试恢复我今天早上在你的帖子上所做的 -1 ;) 但是更精确的参考会很好。
    • 我一直在寻找大约一个小时......但找不到它 - 这让我很烦!当他们将现有程序从 awt 转换为 jfc 时出现了问题 - 您最终会得到两个名为 Button 的东西。
    【解决方案2】:

    “J”最初是由 KL Group (now quest.com) 提出的,其革命性的 BWT 构成了今天称为 Swing /JFC 的改进型 AWT 的基础。

    所以,它来自今天的KL JClassancestor
    不是这样,根据TofuBeer's answer:我将其余部分保留为社区答案,因为它详细说明了 JClass 是什么,但“J”可能根本不是来自他们的库与 Swing 的集成.)

    JClass SwingSuite,Sun Microsystems, Inc. 的 Java(TM) 开发工具包(JDK(TM) 版本 1.2)中 Swing 的一组新扩展和增强:它与 Sun 的公告不谋而合今天在纽约举行的 Java(SM) Business Expo(SM) 期间发布了 JDK 1.2。

    JClass JavaBeans 可用于许多流行的 Java IDE,并且是世界各地专业和企业开发人员使用的基本组件。
    JClass 3.6 包括“J”版本,它与 javax.swing 包一起使用,现在可以使用 JDK 1.2 进行开发和部署


    来自JClass 3.6 to 4.0 Porting GuideKL Group Releases Swing Update for JClassLine (march 1998)

    为了适应 Java 开发人员可能使用的各种类型的环境,我们开发了可用于特定 Java 开发工具包 (JDK) 的 JClass 产品版本。下面列出了不同版本之间的区别:

    • “J”版本:使用JDK 1.1 + Swing 1.1(推荐JDK 1.1.8 + Swing 1.1.1)
    • “K”版本:使用Java 2(推荐JDK 1.2.2)

    JClass 3.6 及之前的版本使用了稍微不同的字母方案,如下:

    • “T”版本:使用 JDK 1.0.2 API 并实现“Transitional”JavaBeans
    • “无字母”版本:使用 JDK 1.1.x 并包含完整的 JavaBean 实现
    • “S”版本:使用JDK 1.1/Swing 1.0.3
    • “J”版本:使用 JDK 1.2 或 JDK 1.1 和 Swing 1.1

    一些一般背景:

    来自The Basic Java Applet and JApplet

    AWT(Abstract Windowing Toolkit)从一开始就是 Java 的一部分,但几乎从一开始,很明显 AWT 的功能和灵活性不足以编写复杂、复杂的应用程序。

    这并不妨碍它发挥作用——尤其是对于通常不像完整的独立应用程序那样复杂的小程序。

    创建 Swing 图形用户界面库是为了解决 AWT 的问题。随着 Java 版本 1.2 的发布,Swing 成为 Java 的正式组成部分。 (从 1.2 开始的 Java 版本也被称为“Java 2”,相当容易混淆。)

    仍然有充分的理由编写基于 AWT 的小程序,例如在许多 Web 浏览器中缺乏对 Java 2 的支持。但是,在这一点上,几乎可以肯定任何使用 Java 编写独立图形应用程序的人都应该使用 Swing。

    组成 Swing 库的类可以在包javax.swing 中找到。 Swing 包含类javax.swing.JApplet,用作编写小程序的基础。

    JApplet实际上是Applet的子类,所以JApplets实际上是通常意义上的Applets

    不过,JApplets 有很多普通 Applet 所没有的额外结构。由于这种结构,JApplet 的绘制是一件更复杂的事情,由系统处理。

    因此,当您创建JApplet 的子类时,您不应该为它编写paint() 方法。正如我们将看到的,如果您想在JApplet 上绘图,您应该将一个组件添加到小程序中以用于该目的。另一方面,您可以并且通常应该为JApplet 的子类编写init() 方法。

    Swing 是一大组组件,从非常简单的标签(如标签)到非常复杂的组件(如表格、树和样式化的文本文档)。
    几乎所有 Swing 组件都派生自一个名为 JComponent 的单个父级,它扩展了 AWT Container 类。
    因此,最好将 Swing 描述为 AWT 之上的一个层,而不是替代它。
    如果您将其与 AWT 组件层次结构进行比较,您会注意到对于每个 AWT 组件,都有一个带有 前缀“J 的 Swing 等效项。
    唯一的例外是 AWT Canvas 类,JComponentJLabelJPanel 可以用作替代品。许多 Swing 类没有对应的 AWT。

    【讨论】:

    • 女士们先生们,这是我在 StackOverflow 上的一千个答案!哇哦!香槟和......那是什么,老板?最新的 Findbugs 报告在哪里?正确的。回去工作。
    • 嗯……来自 Netscape 的 IFC 是 JFC 的基础……同一个团队开发了这两者。该团队从 Netscape 转到 Sun。 J 在第一次向被许可人投放源时就在那里(我是我公司收到下降的人)。
    • BWT 和 IFC(后来成为 JFC,后来成为 Swing)也不兼容……“我可以在 IFC 环境中使用 BWT 控件吗?” sciencedesk.arc.nasa.gov/jclass/bwt-doc/faq_bwt.html#bg42
    • en.wikipedia.org/wiki/Java_Foundation_Classes 了解更多关于 Swing/JFC/IFC 的历史。
    【解决方案3】:

    J 代表 Java。 JSomeName 类与其“以前的”版本之间的主要区别在于,J-ones 设计用于与 Swing(或任何其他图形工具包)一起使用,而其他的则从那时起只有 AWT 可用。

    【讨论】:

      【解决方案4】:

      J 来自 Swing 类中使用的约定。

      根据javadoc

      java.applet.Applet 的扩展版本,增加了对JFC/Swing component architecture的支持

      JFC/Swing 架构不同于 AWT 架构。

      有几个不同之处,但最重要的是,AWT 使用本机代码来呈现小部件(SWT 也是如此),而 Swing 是“轻量级”,因为所有这些都是使用 Java 绘制的。

      所以你的问题的答案

      JApplet 中的“J”是什么意思?

      表示它是一个支持 Swing 架构的 Applet。

      我认为TofuBeerVonC 是很好的答案,但它们并没有(至少直接)解决您的问题。相反,他们进一步解释了为什么摇摆组件中的 J 不应与 Sun 以外的其他类前面的大量其他 J 混淆。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-20
        • 1970-01-01
        • 2013-03-07
        • 2019-01-07
        • 1970-01-01
        • 1970-01-01
        • 2021-09-20
        • 1970-01-01
        相关资源
        最近更新 更多