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

时间:2009-03-20 07:27:50

标签: java applet

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

4 个答案:

答案 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 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
  •   
  • “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方法。

enter image description here

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

我认为TofuBeerVonC是很好的答案,但它们并未解决(至少直接)您的问题。相反,他们会进一步解释为什么摇摆组件中的J,并且不应该在太阳之外的其他类别之前与其他大量的J混淆。