Welche Plattform sollten Sie wählen für Applikationen Java Desktop entwickeln?

1- Die Vorstellung

In der Praxis gibt es einige üblichen Fragen mit Java:

  • Welche Maßnahmen soll ich wählen um eine Applikation Desktop zu programmieren
  • Gibt es eine Maßnahme zur Programmierung einer Website, deren Interface gleich wie die Applikation Desktop is?
Im Dokument werde ich die oben Frage antworten und gleichzeitig die Lösung geben

Die Applikation Desktop:

Das ist eine Applikation Desktop, die mit   Java ( Java Swing) geschrieben wird:

Die Applikation web:

Und das ist eine Applikation Web , deren Interface so gleich wie die Interface von einer Applikation Desktop ist. Sie wird in die  Eclipse RAP geschrieben:

2- Java Desktop Applikation programmieren

Sie haben in der Praxis 2 Options um die Applikation Desktop zu programmieren
  • Sử dụng Swing - ist eine intergrierte Bibliothek in JDK und kann auf die unterschiedlichen Betriebssystem laufen (Windows, Unix, Mac OS,..)
  • Sử dụng SWT - ist eine Bibliothek zur Programmierung der Applikation Desktop, die vom IBM entwickelt. Sie kann auf allen unterschiedlichen Betriebssystem laufen (Window, Unix, Mac OS,..)
Das ist das Bild von der Applikation  Desktop, die mit SWT geschrieben wird und auf alle unterschiedlichen Betriebssystem läuft.
Das ist das Bild der Applikation Desktop. Die mit Swing geschrieben wird. Mit dem standardmäßigen  "Look And Feel" sieht es ziemlich einfach aus. In der Programmierung können Sie ein anderes L-A-F wählen um eine Interface wie von dem Windows oder Linux zu haben wenn Sie möchten

2.1- Swing

AWT (Abstract Window Toolkit) - ist eine verfügbare Bibliothek in JDK, die für Programmierung Desktop entwickelt wird. Allerdings funktioniert sie auf die unterschiedlichen Betriebssystem nicht so gut wie erwartet. Das ist der Grund zur Entstehung vom Swing um AWT zu ersetzen, damit sie auf allen unterschiedlichen Betriebssystem gut laufen kann
Swing baut die Grafik Interface ganz mi   Java. und laufen allen Betriebssystems. Es ersetzt AWT nicht, sondern aus erbt aus AWT. Das ist eine Schwäche, die den Programmer verwirrt macht. Eine große Menge der Klasse AWT werden nicht mehr benutzt oder sie werden die Klasse geerbt durch die Klasse vom Swing. Nach meiner Meinung macht das Swing nicht gut geschätzt werden

2.2- SWT (Standard Widget Toolkit)

SWT (Standard Widget Toolkit) ist eine Programmierungsbibliothek zur Desktop-Applikation, die durch IBM entwickelt wird. Sie entwickelt die Graphik  durch Java hauptsächlich nicht. Beim Laufem auf einem Betriebssystem versucht sie seine Graphik-Interface ( Button, Label, ...) zu nutzen und erstellt nur die Graphik-Element durch Java, die das Betriebssystem nicht hat.
Bei der SWT Programmierung sollen Sie am besten Eclipse IDE benutzen. Eclipse kann plugin WindowBuilder integrieren, das das Ziehen-und Ablegen der Interfaceelemente sehr einfach unterstützt. WindowBuilder war ein Produkt zum Verkaufen, aber jetzt ist es kostenlos ab der Integration ins  Eclipse.

2.3- Der Vergleich zwischen SWT und Swing

Swing ist eine echte Java Bibliothek. Nach der Applikationsprogrammierung können Sie Look And Feel (Sehen und Fühlen) einstellen um eine gleiche Interface wie Windows oder Linux oder Mac Os  ... zu schaffen. Sie können einige vorhandenen Look and Feel auf JDK oder die L-A-F kaufen. Deshalb beim Laufen einer Swing Applikation auf dem Betriebssystem Windows ist die Interface aber von Linux, Mac Os ...
Das ist die Link über die schöne L-A-F :
SWT - Das ist eine Bibliothek, die durch Java nicht ganz geschrieben wird. Wenn es auf einem Betriebssystem läuft, versucht es die Bibliothekelement (wie Button, Label, Frame ...) zu benutzen und benutzt nur Java wenn sie im Betriebssystem liegt nicht. Deshalb ist SWT schneller als Swing
In SWT gibt es keinen Begriff Look And Feel wie in  Swing. Wenn Sie in einem Betriebssystem laufen, hat die Interface die Eigenschaft dieses Betriebsystem.

Der Vergleich über die Geschwindigkeit

2.4- Welche sollen Sie wählen, SWT oder Swing?

Ich denke, Sie sollen SWT wählen um die Desktop Applikation zu programmieren. Denn das ist eine umfangreiche Bibliothek mit den unterschiedlichen Elemente. Außerdem ist diese Bibliothek nach Swing geboren. So lernt sie aus Swing und vermeidet die Nachteile vom Swing 
SWT mit den erweiterten Bibliothek entwickeln gerade, zum Beispiel:
Eclipse entwickelt einen neuen Platform  RAP (Remote Application Platform) - RAP erlaubt Sie, die Applikation mit der Interface wie die Desktop applikation zu programmieren und die üblichen Klasse im SWT zu benutzen. Deshalb können Sie eine Applikation schreiben, die auf den Website und auch Desktop laufen können. Das ist ein Vorteil wenn Sie SWT wählen.
Schauen Sie ein Demo des Programm, das durch RAP geschrieben wird:

3- Die Technologie vom Eclipse

Wir brauchen ein Blick über die Technik vom Eclipse
RCP (Rich Client Platform) : ist ein  platform, das die Bibliothek   SWT benutzt um die  Desktop Applikation zu programmieren. Es kann auf die verschiedenen Betriebssystem laufen.
(Die Detail über RCP wird später erwähnt.)
RAP (Remote Application Platform): ist ein Platform, das die Bibliothek RWT benutzt, damit die Applikation auf die Website wie die Desktop Applikation programmiert wird.
  • RWT (RAP Widget Toolkit) ist die Bibliothek mit den Klasse, die den gleichen Name vom SWT haben und die ählichen Methode, damit Sie die Applikation RAP auf Website programmieren können. So brauchen Sie wegen der Eigenschaft nur eine source code, dann können Sie die Applikation auf Desktop oder auf Web laufen
RAP läuft gut in vielen unterschiedlichen Browser.
Tabris - ist eine Bibliothek für die Applikation Mobile,und kann in vielen verschiedenen  Mobile laufen.

4- Was kann RCP machen?

RCP (Rich Client Platform) : ist ein die SWT Bibliothek benutzendes Platform um die Applikation Desktop zu benutzen. Es kann in allen verschiedenen Betriebssystem laufen und es ist das Platform, das Eclipse IDE schreibt.
Deshalb ist RCP ein Platform, das SWT als Basis zum Bauen. Sie können RCP Platform um die Applikation Desktop zu programmieren
Das folgende Bild ist eine einface Applikation (nur SWT benutzen, die fortgeschrittene Dinge von  RCP Platform noch nicht benutzen):
RCP Platform baut ein Platform, damit Sie die Interface mit der komplizierten Interface wie Eclipse IDE programmieren können. Es schließt Menu, Toolbar, View, Editor, ...ein.
RCP erlaubt Sie, die Plugin, die in die benutzenden Eclipse intergiert, zu entwickeln

5- Was kann RAP machen?

RAP (Remote Application Platform): Ist ein Platform, der die Bibliothek RWT zur Programmierung der Applikation laufend auf dem Web wie die Applikation von Desktop benutzt.
  • RWT (RAP Widget Toolkit) ist die Bibliothek mit der Klasse, deren Name so gleich wie den Name der Klasse von SWT und die ähnlichen Methode, damit Sie die Applikation RAP auf dem Web programmieren können. Deshalb braucht die Eigenschaft nur eine source code. Sie können die Applikation wie eine Desktop Applikation oder auf dem Web durchführen 
Wie  RCP ist RAP ein Platform. Es erlaubt, die Applikationen mit der komplizierten Interface wie Eclipse IDE zu erstellen.

6- RAP & RCP - Warum sind die Code so gleich?

Das ist die Struktur vom  2 Platform:
  • RCP benutzt SWT (Standard Widget Toolkit)
  • RAP benutzt RWT (RAP Widget Toolkit)
Das ist ein Beispiel: einen  Button in die  Composite hinzufügen:
** MyApplicationWindow **
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;

public class MyApplicationWindow  {

    .......

   protected void createContents() {
       .......

       Composite composite = new Composite(shell, SWT.NONE);
       composite.setLayout(new GridLayout(1, false));
      
       Button btnMyButton = new Button(composite, SWT.NONE);
       btnMyButton.setText("My Button");
   }

}
SWT und  RWT benutzen die Klasse  org.eclipse.swt.widgets.Button um  Button  zu erstellen

Die Kode von der Klasse  Button im  SWT (auf die Desktop laufen) ist unterschiedlich mit der Kode von der Klasse  Button vom  RWT (auf WEB laufen).
  • Die Klasse Button vom SWT wird in die File jar mit dem Name vom org.eclipse.swt_*.jar gepackt
  • Die Klasse Button vom RWT wird in die File jar mit dem Name vom org.eclipse.rap.rwt_*.jar
Target Platform is a library environment where you can declare.

You can declare two  Target Platforms. One includes RCP libraries, and another includes RAP libraries.
  • RCP Target Platform
  • RAP Target Platform
With the same code but if you run with  RCP Target Platform, you will get a Desktop application; if you run with  RAP Target Platform, you will get an application on Web.

Of course, RAP and RCP have some differences. No all components of SWT have equivalently on RWT, and vice versa. In specific situations, we can handle this difference. Applications which can run on both Desktop and Web are known as  "Single Sourcing".

7- Woher beginnen Sie

Wenn Sie nach der Methode RAP-RCP programmieren, können Sie   SWT kennen lernen, d.h Sie kennen RWT leicht.

Das Umgang mit SWT bedeutet das Arbeiten mit den Objekte Widget ( Button, Label, ..) und der Behandlung von Layout. WindowBuilder ist ein Plugin, das die Elemente auf die Interface zu ziehen und abzulegen und automatisch die entsprechende Code zu erstellen erlaubt
Sie können das folgende Unterlagen lernen. Es führt die Programmierung SWT mit Window Builder, das ein illustrierte Instrument ist und es ist einfach, die Interface Element zu ziehen und abzulegen
Nachdem Sie mit SWT so gut programmieren, können Sie mit RCP oder RAP weiter machen

SWT:

RCP

RAP

  • TODO Link!