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 mitJava (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
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 mit 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
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.
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
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 BibliothekSWT benutzt um die Desktop Applikation zu programmieren. Es kann auf die verschiedenen Betriebssystem laufen.
(Die Detail über RCP wird später erwähnt.)
(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 imSWT (auf die Desktop laufen) ist unterschiedlich mit der Kode von der Klasse Button vom RWT (auf WEB laufen).
Die Kode von der Klasse Button imSWT (auf die Desktop laufen) ist unterschiedlich mit der Kode von der Klasse Button vom RWT (auf WEB laufen).
- Die Klasse Button vomSWT wird in die Filejar mit dem Name vomorg.eclipse.swt_*.jar gepackt
- Die Klasse Button vomRWT 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.
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".
You can declare two Target Platforms. One includes RCP libraries, and another includes RAP libraries.
- RCP Target Platform
- RAP Target Platform
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 SieSWT 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
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
- Hướng dẫn lập trình Eclipse RAP cho người mới bắt đầu - Ứng dụng cơ bản
Eclipse RAP
- Installieren Sie RAP Tools für Eclipse
- Welche Plattform sollten Sie wählen für Applikationen Java Desktop entwickeln?
- Die Anleitung zum Eclipse RAP für den Anfänger - e4 Workbench Application
- Installiere Eclipse RAP Target Platform
- Erstellen Sie Eclipse RAP Widget aus dem ClientScripting-basierten Widget
- Installieren Sie RAP e4 Tooling für Eclipse
Show More
Eclipse-Technologie
- Installieren Sie Tycho für Eclipse
- Die Anleitung zum Java OSGi für den Anfänger
- Erstellen Sie ein Java OSGi-Projekt mit Maven und Tycho
- Installieren Sie WindowBuilder für Eclipse
- Welche Plattform sollten Sie wählen für Applikationen Java Desktop entwickeln?
- Programmieren der Java Desktop-Anwendung mit SWT
- Die Anleitung zu Eclipse JFace
- Installiere Eclipse RAP Target Platform
- Installieren Sie RAP e4 Tooling für Eclipse
- Erstellen Sie Eclipse RAP Widget aus dem ClientScripting-basierten Widget
- Die Anleitung zum Eclipse RCP für den Anfänger - Workbench Anwendung
- Installieren Sie RAP Tools für Eclipse
- Die Anleitung zum Eclipse RAP für den Anfänger - e4 Workbench Application
Show More
Java Grundlagen
- Anpassen von Java-Compiler, der Ihre Annotation verarbeitet (Annotation Processing Tool)
- Java Programmierung für Team mit Eclipse und SVN
- Die Anleitung zu Java WeakReference
- Die Anleitung zu Java PhantomReference
- Komprimierung und Dekomprimierung in Java
- Konfigurieren von Eclipse zur Verwendung des JDK anstelle von JRE
- Java-Methoden String.format() und printf()
- Syntax und neue Funktionen in Java 8
- Die Anleitung zu Java Reguläre Ausdrücke
- Die Anleitung zu Java Multithreading Programming
- JDBC Driver Bibliotheken für verschiedene Arten von Datenbank in Java
- Die Anleitung zu Java JDBC
- Holen Sie sich die automatisch erhöhenden Wert der Spalte bei dem Insert eines Rekord, der JDBC benutzt
- Die Anleitung zu Java Stream
- Die Anleitung zu Java Functional Interface
- Einführung in Raspberry Pi
- Die Anleitung zu Java Predicate
- Abstrakte Klasse und Interface in Java
- Zugriffsmodifikatoren (Access modifiers) in Java
- Die Anleitung zu Java Enum
- Die Anleitung zu Java Annotation
- Vergleichen und Sortieren in Java
- Die Anleitung zu Java String, StringBuffer und StringBuilder
- Die Anleitung zu Java Exception
- Die Anleitung zu Java Generics
- Manipulieren von Dateien und Verzeichnissen in Java
- Die Anleitung zu Java BiPredicate
- Die Anleitung zu Java Consumer
- Die Anleitung zu Java BiConsumer
- Was ist erforderlich, um mit Java zu beginnen?
- Geschichte von Java und der Unterschied zwischen Oracle JDK und OpenJDK
- Installieren Sie Java unter Windows
- Installieren Sie Java unter Ubuntu
- Installieren Sie OpenJDK unter Ubuntu
- Installieren Sie Eclipse
- Installieren Sie Eclipse unter Ubuntu
- Schnelle lernen Java für Anfänger
- Geschichte von Bits und Bytes in der Informatik
- Datentypen in Java
- Bitweise Operationen
- if else Anweisung in Java
- Switch Anweisung in Java
- Schleifen in Java
- Die Anleitung zu Java Array
- JDK Javadoc im CHM-Format
- Vererbung und Polymorphismus in Java
- Die Anleitung zu Java Function
- Die Anleitung zu Java BiFunction
- Beispiel für Java Encoding und Decoding mit Apache Base64
- Die Anleitung zu Java Reflection
- Java-Remote-Methodenaufruf - Java RMI
- Die Anleitung zu Java Socket
- Welche Plattform sollten Sie wählen für Applikationen Java Desktop entwickeln?
- Die Anleitung zu Java Commons IO
- Die Anleitung zu Java Commons Email
- Die Anleitung zu Java Commons Logging
- Java System.identityHashCode, Object.hashCode und Object.equals verstehen
- Die Anleitung zu Java SoftReference
- Die Anleitung zu Java Supplier
- Java Aspect Oriented Programming mit AspectJ (AOP)
Show More
- Anleitungen Java Servlet/JSP
- Die Anleitungen Java Collections Framework
- Java API für HTML & XML
- Die Anleitungen Java IO
- Die Anleitungen Java Date Time
- Anleitungen Spring Boot
- Anleitungen Maven
- Anleitungen Gradle
- Anleitungen Java Web Services
- Anleitungen Java SWT
- Die Anleitungen JavaFX
- Die Anleitungen Oracle Java ADF
- Die Anleitungen Struts2 Framework
- Anleitungen Spring Cloud