JApplet中的“J”是什么意思?
答案 0 :(得分:13)
当Sun开始研究Swing时,他们有像javax.swing.Button这样的东西。这导致了使用java.awt.Button的程序出现问题。如果我没记错的话,主要问题是编译器错误消息令人困惑。
Sun决定使用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团队成员的电子邮件......
“un-J'd名字已被拍摄 通过AWT,我们认为它很有用 一个共同的前缀来区分 来自其他类的“组件” 包“。
已经采用的部分与我对编译器的说法相符,但不确认。
答案 1 :(得分:7)
'J'首先被KL Group (now quest.com)推出,其革命性的BWT构成了今天改进的AWT的基础,称为Swing / JFC。
所以,它来自今天的ancestor 的KL JClass:
(不是这样,根据TofuBeer's answer :我把剩下的作为社区答案,因为它详细说明了什么是JClass,但是'J'可能完全不是来自他们的库的集成进入Swing。)
JClass SwingSuite ,Sun Microsystems,Inc。的Java(TM)开发工具包(JDK(TM)1.2版)中针对Swing的一组新扩展和增强:它与Sun的公告一致今天在纽约Java(SM)商业博览会(SM)期间制作的JDK 1.2的可用性。
JClass JavaBeans
可在许多流行的Java IDE中使用,是全球专业和企业开发人员使用的基本组件。
JClass 3.6 包含“J”版本,它与javax.swing包一起使用,支持今天使用JDK 1.2进行开发和部署。
来自JClass 3.6 to 4.0 Porting Guide和KL 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
- “Unlettered”版本:使用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(抽象窗口工具包)从一开始就是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中添加一个组件来用于此目的。另一方面,您可以并且通常应该为init()
的子类编写JApplet
方法。
Swing是一组很大的组件,从非常简单的标签(如标签)到非常复杂的组件(如表格,树和样式文本文档)。
几乎所有Swing组件都派生自一个名为JComponent
的父级,它扩展了AWT Container
类
因此,Swing最好被描述为AWT之上的一层,而不是它的替代品
如果将其与AWT组件层次结构进行比较,您会注意到每个AWT组件都有一个与前缀“J
”相对应的Swing。
唯一的例外是AWT Canvas
类,JComponent
,JLabel
或JPanel
可用作替代。许多Swing类没有AWT对应物。
答案 2 :(得分:1)
J代表Java。 JSomeName类与它们的“之前”版本之间的主要区别在于,J-one设计用于Swing(或任何其他图形工具包),而其他类型则是仅有AWT可用的时间。
答案 3 :(得分:1)
J来自Swing类中使用的约定。
根据javadoc:
扩展版本的java.applet.Applet,它增加了对JFC/Swing component architecture 的支持
JFC / Swing架构与AWT架构不同。
有几个不同之处,但最重要的是,AWT使用本机代码来渲染小部件(SWT也是如此),而Swing是“轻量级”,因为所有都是使用Java绘制的。
所以问题的答案
JApplet中的“J”是什么意思?
这意味着它是一个支持Swing架构的Applet。
我认为TofuBeer和VonC是很好的答案,但它们并未解决(至少直接)您的问题。相反,他们会进一步解释为什么摇摆组件中的J,并且不应该在太阳之外的其他类别之前与其他大量的J混淆。