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

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

当Sun开始研究Swing时,他们有像javax.swing.Button这样的东西。 这给使用java.awt.Button的程序带来了问题。 如果我没记错的话,主要问题是编译器错误消息令人困惑。

Sun决定使用J作为所有Swing组件的前缀,以消除此问题。

最初的摇摆被称为JFC – Java Foundation Classes ……大概是J来自于此。

来自Netscape的IFC是JFC的基础……同一个团队开发了两者。
团队从Netscape搬到了Sun.
J是第一个被许可人的消息来源(我是为什么收到了我公司的下降)。

JClass BWT和IFC(成为JFC,后来成为Swing)也不兼容……“ 我可以在IFC环境中使用BWT控件吗? ”

编辑:回复来自Swing团队成员的电子邮件…

“非J的名字已经由AWT采用,我们认为使用通用前缀来区分”组件“与包中的其他类是有用的。”

已经采取的部分与我对编译器的说法相符,但不确认。

‘J’首先由KL集团 (现为quest.com)推出,其革命性的BWT构成了今天改进的AWT的基础,称为Swing / JFC。

所以, 它来自今天的KL JClass的祖先
不是这样,根据TofuBeer的回答 :我把剩下的作为社区答案留下来了,因为它详细说明了什么是JClass,但是’J’可能根本不会将他们的库集成到Swing中。)

JClass SwingSuite是Sun Microsystems,Inc。的Java(TM)开发工具包(JDK(TM)1.2版)中针对Swing的一组新扩展和增强:它与Sun公司今天宣布的JDK 1.2的可用性相吻合。纽约Java(SM)商业博览会(SM)。

JClass JavaBeans在许多流行的Java IDE中都可用,并且是全球专业和企业开发人员使用的基本组件。
JClass 3.6 包含“J”版本,它与javax.swing包一起使用,支持今天使用JDK 1.2进行开发和部署


从JClass 3.6到4.0移植指南和KL集团发布JClassLine的Swing更新(1998年3月) :

为了适应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
  • “Unlettered”版本:使用JDK 1.1.x并包含完整的JavaBean实现
  • “S”版本:使用JDK 1.1 / Swing 1.0.3
  • “J”版本:使用带有Swing 1.1的JDK 1.2或JDK 1.1

一些一般背景:

来自Basic Java Applet和JApplet

AWT(抽象窗口工具包)从一开始就是Java的一部分,但是,从一开始,很明显AWT对于编写复杂,复杂的应用程序来说不够强大或不够灵活。

这并不妨碍它有用 – 特别是对于applet,它通常不像全面的独立应用程序那么复杂。

创建Swing图形用户界面库是为了解决AWT的问题。 随着Java 1.2版的发布,Swing成为Java的官方部分。 (从1.2开始的Java版本也被称为“Java 2”,相当令人困惑)

基于AWT编写applet仍有很好的理由,例如在Java 2的许多Web浏览器中缺乏支持。但是,在这一点上,任何用Java编写独立图形应用程序的人几乎肯定会使用Swing。

构成Swing库的类可以在包javax.swing找到。 Swing包含类javax.swing.JApplet ,用作编写applet的基础。

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

但是, JApplets有许多普通Applet没有的额外结构 。 由于这种结构, JApplet的绘制是一个更复杂的事情,并由系统处理。

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

在此处输入图像描述

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

J代表Java。 JSomeName类与它们的“之前”版本之间的主要区别在于,J-ones设计用于Swing(或任何其他图形工具包),而其他类型则是仅有AWT可用的时间。

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

根据javadoc :

一个扩展版本的java.applet.Applet,它添加了对JFC / Swing组件体系结构的支持

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

有几个区别,但最重要的是,AWT使用本机代码来渲染小部件( SWT也是如此),而Swing是“轻量级”,因为所有都是使用Java绘制的。

所以你的问题的答案

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

这意味着它是一个支持Swing架构的Applet。

我认为TofuBeer和VonC是很好的答案,但他们没有解决(至少直接)你的问题。 相反,他们进一步解释为什么J在摆动组件中,不应该与Sun之外的其他类别之前的其他J混淆。