Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the relationship between AWT, SWT, Swing, SAF/JSR-296, JFace, the NetBeans Platform and the Eclipse RCP

I am looking for something that puts this alphabet soup into perspective. It would be nice if it were light on the politics of the differences and tries to illuminate the similarities (if there are any).

like image 663
vkraemer Avatar asked Feb 12 '11 03:02

vkraemer


1 Answers

similarities :

rendering -> graphic library -> plaform

AWT -> SWING -> NETBEANS PLATFORM
             -> jsr 296
SWT -> JFACE -> eclipse rcp

rendering toolkit provides basic capabilities canvas drawing, label, text, combobox,...

graphic library introduces MVC patterns, higher level component (sortable tables,date picker...)

platform help having modular application composed of modules, extending capabilities of other modules.It also adds enterprise features like background tasks, deployment solution, help mechanism, preferences store,...


differences

swt :

  • native look,
  • native implementation resource (font, images,...) should be disposed by the developper. layers on top (jface, eclipse) tries to limit leaks of theses resources.
  • most OS are supported.
  • swt composites can contains awt/swing components
  • constructor based api for container/component relationship (new Child(parent))

awt/swing :

  • jvm implementation carries the specific os implementation
  • except if using different look and feel, you see that the application isn't native
  • collection based api for container/component relationship (parent.add(child))

eclipse :

  • based on osgi to host plugins;
  • this enables robust dependency resolution, multiple versions,...)

netbeans rcp :

  • specific implementation for plugins not reusing osgi.
like image 78
mestachs Avatar answered Oct 21 '22 14:10

mestachs