|
Letzte
Bearbeitung dieses Dokuments: |
Voraussetzungen für das Verständnis dieses Dokuments:Grundkenntnisse in der Programmierung von Java (Klassen, Methoden, Schleifen) oder anderer Objekt-Orientierter Programmiersprachen (z.B. C++, Modula-2, Pascal). Tutorial Datenbank-Ladeprogramm mit Graphischer Benutzeroberfläche (Java_Intro_02) durchgearbeitet. |
Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:Arbeitszeit:
|
Dieses
Dokument enthält die Anleitung für die Entwicklung der
Graphischen Benutzeroberfläche (GUI) für das StartFrame
(CommandCenter).
Dabei wird auf die im JavaScout-Base-System
enthaltene Basisklasse für das StartFrame geerbt. Diese
Basisklasse enthält bereits alle GUI-Elemente für das
Command-Center.
Voriger Schritt: Einrichten von Project und Integrieren von Java-Bibliotheken
Vorbemerkung
Vorbedingungen
Klasse
für das StartFrame (CommandCenter) eröffnen
Code
am Ende dieses Schrittes
Erläuterung
des Codes
Test
Weitere
Schritte und verwandte Dokumentation
Nächster Schritt: Text für die GUI-Elemente von XML-Datei einlesen
Obwohl
Eclipse in 'deutscher Version' installiert werden kann, sind
die Abbildungen in diesem Dokument mit der 'english Version'
erstellt. |
Tutorial Datenbank-Ladeprogramm mit Graphischer Benutzeroberfläche (Java_Intro_02) durchgearbeitet – und dessen Vorbedingungen auch.
Voriger Schritt Einrichten von Project und Integrieren von Java-Bibliotheken abgeschlossen.
Klasse
für das StartFrame (CommandCenter) eröffnen
Um eine neue Java-Klasse zu eröffnen wird mit der rechten Maustaste das Project (Java_Fatclient_01) angeklickt und aus dem Kontext-Menu >New>Class ausgewählt. |
|
Im darauf hin erscheinenden Fenster (New Java Class) wird
Die anderen bereits vorgegebenen Werte werden nicht verändert. Durch Anklicken der Schaltfläche [ Finish ] wird die Datei für den Quell-Code der Klasse angelegt. |
Code
am Ende dieses Schrittes
In
diesem Abschnitt wird der gesamte Code, wie er am Ende dieses Schritt
aussehen soll, gelistet.
Durch Anklicken der unterstrichenen Teile
gelangen Sie zu der Beschreibung der Aufgabe des jeweiligen Teiles
des Programms.
package
js_projassist.client;
/*
*
Package mit der Basisklasse für das StartFrame. */import
js_base.frame.*;
/*
*
Package mit der Basisklasse für die Struktur mit Parametern.
*/import
js_base.structures.*;
/*
*/
public
class
JS_ProjAssist_CommandCenter
extends
JSBS_StartFrame
{
/*
* Constructor der Klasse.
* Code darin
wird aufgerufen wenn ein Objekt dieser Klasse erstellt wird.
*/
public
JS_ProjAssist_CommandCenter(String
parmstrLanguageCode)
{
/*
* Aufrufen
des Constructors der geerbten Klasse;
* Dort werden die
Standard-Initialisierungen ausgeführt. */
super
();
/*
* Aufrufen
der Methoden mit den individuellen Initialisierungen für diese
Klasse.
*/
initialize_before_frame(parmstrLanguageCode);
initialize_frame();
initialize_after_frame();
}/*
* Methode
mit den Initialisierungen die notwendig sind bevor das Frame
(Window)
* angezeigt wird. */
private
void
initialize_before_frame(String
parmstrLanguageCode)
{
/*
* Initialisieren
der Struktur mit den Parametern, die für die gesamte
Applikation
* (inklusive der Task-Frames) gelten.
* Diese Struktur ist in der geerbten Klasse
(JSBS_StartFrame) definiert. */
structJSBS_UniversalParameters
=
new
JSBS_UniversalParameters(parmstrLanguageCode);
}/*
* Methode
mit der das Frame (Window) angezeigt wird. */
private
void
initialize_frame()
{
/* Frame
(Window) sichtbar machen (anzeigen).
*/
setVisible(true
);
/* Anfangsgröße
festlegen. */
setSize(800,
600);/* Grund-Panel
mit den weiteren GUI-Elementen anzeigen.
* Die
GUI-Elemente und deren Anordnung sind in der geerbten Klasse
* (JSBS_StartFrame) festgelegt.
*/
setContentPane(get_pnl_Main());
}/*
* Methode
mit den Initialisierungen die notwendig sind nachdem das Frame
(Window)
* angezeigt wird. */
private
void
initialize_after_frame()
{
}/*
* Methode
main(); diese macht diese Klasse 'startbar'.
* Diese
Methode wird aufgerufen wenn ein Objekt dieser Klasse vom
Java-Runtime-Environment
* als 'Start-Klasse'
aufgeruffen wird. */
public
static void
main(String[]
args) {
/*
*
Übernehmen des Wertes der als Parameter beim Start der Klasse
mitgeliefert wurde. */
String
locstrLanguageCode = ""
;
if
(args.
length
>
0) locstrLanguageCode = args[0];
try
{
/*
* 'Construct'
eines Objekts dieser Klasse;
* damit wird der übrige
Code dieser Klasse ausgeführt.
*/
JS_ProjAssist_CommandCenter
aJS_ProjAssist_commandCenter =
new
JS_ProjAssist_CommandCenter(locstrLanguageCode);
}
catch
(Throwable
Exc) {
/* Unerwarteter
Fehler beim 'Construct' des Objekts; Fehlermeldung ausgeben.
*/
System.out
.println(
"Fehler
beim 'construct' der Klasse
'JS_ProjAssist_CommandCenter'."
);
Exc.printStackTrace();
}
}
}
Erläuterung
des Codes
import
js_base.frame.*;
import
js_base.structures.*;
Damit
werden Programm-Bibliotheken des JavaScout-Basis-Systems
importiert.js_base.frame
enthält
das JSBS_StartFrame
das
von der erstellten Klasse 'geerbt' wird und dessen GUI-Elemente das
Design des CommandCenters festlegen.js_base.structures
enthält
die Struktur mit Variablen, die vom CommandCenter und allen
Task-Frames benötigt werden. Der Zweck dieser Variablen ist
weit gestreut und reicht vom Arbeits-Datum über Name des
Benutzers bis zu Farb-Defininitionen für die GUI-Elemente.
public
class
JS_ProjAssist_CommandCenter
extends
JSBS_StartFrame
{
Diese
Anweisung bewirkt, daß die Basisklasse JSBS_StartFrame
geerbt
wird. In dieser Basisklasse sind alle GUI-Elemente und verschiedene
generelle Methoden (Laden sprachabhängiger Texte, Verbinden zum
Datenbanksystem und/oder Java-Application-Server, Reagieren auf
Funktions-Tasten, usw.) codiert.
public
static void
main(String[]
args)
{
Diese
Methode mit reserviertem (speziellem) Namen definiert die Klasse als
'startbar'. In den Parametern werden werden jene Werte übernommen,
die beim Start (üblicherweise über einen Befehl auf der
Kommandozeile) mitgegeben wurden.
Bei Verwendung des
JavaScout-Basis-Systems kann ein ISO-Sprachcode übergeben
werden der festlegt, welche sprachabhängigen Texte angezeigt
werden. Wird kein Wert als Parameter mitgegeben, wird 'Englisch' als
Standardsprache festgelegt.
Innerhalb dieser Methode wird
erst der 'Constructor' dieser Klasse aufgerufen.
public
JS_ProjAssist_CommandCenter(String
parmstrLanguageCode) {
'Constructor'
dieser Klasse.
Der 'Constructor' wird dann aufgerufen, wenn ein
Objekt der Klasse gebildet wird. Im 'Constructor' kann codiert
werden, was beim Erstellen eines Objektes geschehen soll.
Im
Beispiel wird zuerst – mit dem Aufruf von super()
-
der 'Constructor' der geerbten Basisklasse (JSBS_StartFrame)
ausgeführt. Darin sind die generellen Initialisierungen für
ein CommandCenter enthalten.
Anschließend werden die
individuellen Initialisierungen für das entwickelte Programm
ausgeführt.
Damit der 'Constructor' nicht mit Code überladen
wird, werden die individuellen Initialisierungen in drei weiteren
Methoden codiert.
initialize_before_frame(String
parmstrLanguageCode) {
Diese
Methode enthält den Code der ausgeführt werden muß
bevor das Frame (Fenster) sichtbar gemacht wird.
In diesem
Schritt wird JSBS_UniversalParameters
,
die Struktur mit den allgemeinen Variablen für alle
Task-Frames, initialisiert.
Diese Struktur enthält -unter
Anderem – die Werte für die Sprache, den Benutzer-Namen
und das Arbeitsdatum. Diese 3 Variablen werden bei der Anzeige des
Frames bereits benötigt.
initialize_frame()
{
Methode,
deren Code das Frame 'sichtbar' macht.
Die Anordnung der
GUI-Elemente (Layout) ist in der Basisklasse JSBS_StartFrame
definiert
und
durch setContentPane(get_pnl_Main())
wird
der 'Startpunkt der Hierarchie' (
pnl_Main
)
der GUI-Elemente definiert
.
Test
|
|
|
|
|
|
|
|
|
Dokument |
Inhalt |
Im nächsten Schritt des Tutorials wird vorgestellt, wie die sprachabhängigen Texte für die GUI-Elemente in einer Datei mit XML-Struktur abgelegt werden und wie diese Texte eingelesen und auf die GUI-Elemente übertragen werden. |