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
类,可以使用JComponent
, JLabel
或JPanel
作为替换。 许多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混淆。
- jre8中URLPermission处的IllegalArgumentException
- 为什么我们使用init()而不是Constructor
- 是否存在Javascriptable FTP上载Java / Flash小程序?
- 为什么我的applet得到java.security.AccessControlException:访问被拒绝(java.net.SocketPermission …),我该如何避免它?
- 在Web应用程序中运行applet
- javax.net.ssl.SSLHandshakeException:在applet中握手期间远程主机关闭连接
- 无法在Java applet项目中解析JSObject
- 将Java图形用于applet时,可以增加线条粗细吗? 我不相信BasicStroke有效
- 获取JSObject或JSContext来运行applet