|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Interface Summary | |
|---|---|
| StateSerializable | Serialisierung des Objektzustands. |
| Class Summary | |
|---|---|
| WinApp | Gerüst / Grundlage einer graphischen Java-Anwendung. |
Klassenbibliotheken / Framework für Java-Anwendungen
Copyright © 1997 - 2006
Albrecht Weinert.
Inhalt
Beschreibung
Nutzung von App
Zur Bedeutung und Wirkung der .properties-Datei
Zur Platzierung der .properties und .xml-Dateien
Hinweis auf Beispiele für die (Standard-) Vorgehensweise
Hinweis zu Properties für Applets und Servlets
Andere Klassen
Versionshinweise
Nutzungsbedingungen, Copyright
de.a_weinert.apps,de.frame4j.util,de.a_weinert.graf,de.frame4j.net,de.frame4j.xml,de.a_weinert.math undde.frame4j.io,App, Prop und
AppIO, die wiederkehrende Aufgaben bei
"ernsthaften" Java-Applikationen sowie deren
Steuerung und Parametrierung über Properties zur Verfügung stellen. Auch
graphische Anwendungen bauen sinnvollerweise auf App
auf. Dies kann durch direktes Erben geschehen; im Allgemeinen wird man hier
aber gleich die zusätzlichen Möglichkeiten der
App-Erweiterung
WinApp nutzen (siehe dort) dar.App-) Anwendungen in der selben JMV
und Ressourcenumgebung gleichzeitig und im (Server-) Dauerbetrieb.App (bzw.
WinApp oder anderen Erben) beruhenden Anwendungen
auf einfachste Weise als JMX-Elemente (Java Management Extensions) bedien-
und beobachtbar gemacht werden. Jedes
App-/WinApp-Erbe ist
ein DynamicMBean und ein JMX-Server wird bedarfsweise (automatisch) vom
Framework initialisiert und gehandhabt. Bei den B&B-Client-Rechnern ist
(für einen recht hohen) Einstieg nur das JDK-Werkzeug JConsole notwendig.
Wenn die entsprechenden Zertifikate etc. bereitgestellt sind ist bereits
diese Vorgehen sicher.App-Erbes
muss dieses im einfachsten Falle lediglich nur eine
einzige Programmzeile
(registerAsMBean())
enthalten und bei Initialisierung ausführen. Ohne dieses oder entsprechende
Aktionen gibt es keine JMX-B&B; es gibt keine Hintertür.App
erzeugen. Der empfohlene Ansatz ist es, eine eigene Klasse
von App
abzuleiten und in ihr die abstrakte Methode doIt() zu implementieren.
Diese Methode doIt() stellt dann den
(eigentlichen) Start der
Anwendung dar.
|-------------------------------------------------------|
| import de.frame4j.util.*; |
| |
| @MinDoc( |
| copyright = "Copyright 2010 A. Weinert", |
| author = "Albrecht Weinert", |
| version = "V.1", |
| lastModified = "11.02.2010", |
| lastModifiedBy = "A. Weinert", |
| usage = "start as Java application (-? for help)",
| purpose = "a skeleton App inheritor to work with"
| ) public class MyApp extends App { |
| |
| protected int doIt() { |
| /// ... tut alles, siehe unten |
| return 0; // 0 ist OK, > 0 nicht OK |
| } // int doIt() |
| |
| static public void main(String[] args) { |
| try { |
| new MyApp().go(args, false); |
| } catch (Exception e) { // exit nur via ... |
| AppBase.exit(e, INIT_ERROR); // Fehlstart |
| } // exit nur via FrameWork |
| } // void main(String[]) |
| |
| } // class myApp |
|-------------------------------------------------------|
Eine kleine main-Methode der von App
abgeleiteten Klasse muss dann nur, wie gezeigt,
den default-Konstruktor dieser abgeleiteten Klasse aufrufen und mit
dieser Referenz gleich eine der (von App) geerbten go-Methoden.
Dabei wird empfohlen, eine on-line-Dokumentation in Form einer
Annotation (Klasse MinDoc) zu erzeugen
und die oben gezeigte go-Methode zu verwenden.Prop ist hier sehr mächtig.App-Erben) die
Möglichkeiten von Prop auf die gezeigte Weise nutzen,
gelten folgende Hinweise:Prop
gesetzt; siehe u.A. App.go(..) und
Prop.setFields(..).App-Erben die
Möglichkeiten von
Prop auf die genannte Weise nutzen, gehört dann
als integraler eine Properties-Datei namens
<einfacher Klassenname>.properties. Bei graphischen Anwendungen, sprich
WinApp-Erben, kommt i.A. eine XML-Menu-Beschreibung
in einer Datei namens <einfacher Klassenname>Mb.xml hinzu.
Für die Platzierung dieser Dateien erlaubt
beziehungsweise unterstützt die Klasse PropMap
drei Möglichkeiten:Prop beschrieben, die Anwendung ohne jeden
Programmieraufwand (inter-) nationalisieren können, gilt das eben gesagte
genau so. Die "Grund-Internationalisierung", i.A. de und en, lässt sich
vorzugsweise auch direkt in den Grund-.properties- und -.xml-Dateien
darstellen.AskAlert, FuR etc. dienen.WinApp beruhende Anwendungen siehe hier. Bewährte Anwendungen, die
App beziehungsweise
WinApp nutzen, siehe als direkte Erben
("Direct Known Subclasses") jeweils dort und in folgendem
Bild.
WinApp und
App beruhende Anwendungen; Assoziationen mit den
wichtigsten Hilfsklassen.Prop erbringt den für Applikationen
(App, WinApp)
gebotenen Komfort bei der
Handhabung von Eigenschaften, Start- und Steuerparametern, (Inter-)
Nationalisierung etc. auch Applets und Servlets.MinDoc: Online-Dokumentation als Annotation,Prop: Handhabung von Eigenschaften (Properties) und Aufrufparametern,PropMap: dto.; Elternklasse von Prop und AppLangMap,AppLangMap: Unterstützung der Vielsprachigkeit (Kern-EU),DataFile: Handhabung von Dateien und Dateiausgabe,Input: Handhabung von Eingaben,TeeWriter: Ein gepufferter Writer mit einer robusten und entkoppelten
Verzweigung und weiteren Funktionen,AppIO: Handhabung der Ein-/Ausgabe für graphische und nicht graphische
Java-Anwendungen,XMLdoc: Unterstützung
von XML-Anwendungen,Complex: komplexe Zahlen,CFun, SFun: einige
mathematische Funktionen,SerIO: Handhabung von Standardschnittstellen,SimpleModbusDriver:
Prozess-E/A-Treiber, MODBUS-Peripherie,SimpleMMBoosterDriver:
Prozess-E/A-Treiber, Märklin-Motorola-Protokoll (seriell an Booster),ServeJMBW: Handhabung von JMX,Time: einfache unaufwändige Handhabung von
Zeit- und Kalenderfunktionen.WinApp bzw. App
für graphische und nicht graphische Anwendungen mit einigen dieser unterstützenden
Klassen in diesem Framework.
App und WinApp
Einbindung in die Graphik-Klassen (universell) für swing und AWT.PropMap (als neue
Elternklasse von Prop) und
AppLangMap und hierauf beruhend u.A. eine noch
weitergehende Unterstützung der Internationalisierung.
App,
WinApp,
de.a_weinert.math,
de.frame4j.io,
de.frame4j.graf,
de.frame4j.net,
de.frame4j.xml
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||