|
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 einen Teil der Anleitung für die
Entwicklung der Graphischen Benutzeroberfläche (GUI) für
das StartFrame (CommandCenter).
In diesem Schritt werden die
GUI-Elemente mit sprachabhängigen Texten versehen.
Dazu wird
wieder die Bibliothek mit den Basisklassen benutzt.
Voriger Schritt: Klasse für das StartFrame eröffnen
Vorbemerkung
Vorbedingungen
Verweis
auf Theorie
Zusätzlicher
Code
* Import der
Bibliothek js_base.xml.*
* XML-Struktur
für sprachabhängige Texte konstruieren
* GUI-Elemente
mit sprachabhängigen Texten versehen
Verzeichnis
und Datei mit der XML-Struktur mit den sprachabhängigen Texten
erstellen
Test
Gesamter
Code am Ende des Schrittes
Weitere
Schritte und verwandte Dokumentation
Nächster Schritt: Weitere XML-Strukturen 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 Klasse für das StartFrame eröffnen abgeschlossen.
Das JavaScout Fat-Client-Framework (JS-FCF) und die dafür entwickelten Basisklassen setzt die Einhaltung bestimmter Namen und Strukturen für Verzeichnisse und Dateien voraus. Diese finden Sie im Dokument Verzeichnisstruktur für die Entwicklung von Heavyweight-Clients mit dem JS-FCF .
Den Aufbau der XML-Struktur und die Bedeutung der einzelne XML-Elemente für die sprachabhängigen Texte für GUI-Elemente finden Sie im Dokument Datei 'DisplayStrings.xml' mit sprachabhängigen Texten für die anzeige auf der GUI .
Der
zusätzliche Code in diesem Schritt beschränkt sich auf
wenige Zeilen.
Grund für den bescheidenen Zuwachs an zu
sschreibendem Code ist, daß
die meiste Arbeit in der
Erstellung der Datei mit der XML-Struktur mit den sprachabhängigen
Texten ist
und
das Einlesen der Datei und das Zuordnen dieser
Texte zu den GUI-Elementen mit Methoden der Basisklassen durchgeführt
wird.
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.*;
/*
*
Package mit der Basisklasse für die Bearbeitung von
*
Dateien
mit XML-Strukturen. */
import
js_base.xml.*;
/*
*/
public
class
JS_ProjAssist_CommandCenter
extends
JSBS_StartFrame
{
/*
* Constructor der Klasse.
Die
Bibliothek
js_base.xml
enthält
Klassen für das Einlesen von XML-Strukturen aus Dateien und das
Bearbeiten dieser XML-Strukturen.
/*
* 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);
/*
* 'Construct'
der XML-Struktur mit den sprachabhängigen Texten für
GUI-Elemente.
* Im Constructor wird die XML-Struktur
aus der Datei 'DisplayStrings.xml'
* im Verzeichnis
'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten
Sprache
* (als Parameter der Methode 'main' mitgegeben)
ist. */
structJSBS_XML_DisplayStrings
=
new
JSBS_XML_DisplayStrings(
structJSBS_UniversalParameters
);
/*
* Prüfen
ob die XML-Struktur fehlerfrei gelesen werden konnte. */
if
(
structJSBS_XML_DisplayStrings
.
StatusCode
!=
structJSBS_XML_DisplayStrings
.
CONST_OK
)
{
new
JSBS_XML_DisplayStrings(
structJSBS_UniversalParameters
);
/* Fehler
beim Einlesen der XML-Struktur; Fehlermeldung und Status-Code auf der
Konsole ausgegen.
* Eine Beschreibung des Fehler-Codes
ist in der Interface JSBS_XML_Constants zu finden.
*/
System.out.println("Fehler
beim Einlesen von 'DisplayStrings.xml'; StatusCode: "
+
Integer.toString(structJSBS_XML_DisplayStrings
.
StatusCode
));
}
}
Das
'Construct' für die Struktur enthält umfangreichen Code in
den Basisklassen.
Darin wird die Datei gelesen und die darin
enthaltene XML-Struktur in die Variable übertragen.
Im
StatusCode
von
structJSBS_XML_DisplayStrings
sind
etwaige Fehler enthalten die beim Öffnen der Datei oder beim
Einlesen der XML-Struktur aufgetreten sind.
Ob ein Fehler
aufgetreten ist, wird anschließend an das 'construct' über
den StatusCode
abgefragt.
Die
Fehler-Codes sind in der Java-Interface JSBS_XML_Constants
definiert.
Nachdem die Application noch keine Graphische
Benutzeroberfläche hat, müssen etwaige Fehler über die
Konsole gemeldet werden.
/*
* Methode
mit den Initialisierungen die notwendig sind nachdem das Frame
(Window)
* angezeigt wird. */
private
void
initialize_after_frame()
{
/*
* Methode
aufrufen mit der alle (in der Datei 'DisplayStrings.xml' definierten)
* GUI-Elemente mit Text, Font und ToolTipText versehen
werden.
*/
JSBS_GUIServices.processLanguageDependantElements(this
);
}
Nachdem die Graphische Benutzeroberfläche erstellt ist wird durch eine Methode der Basisklassen jedes GUI-Element mit dem sprachabhängigen Text aus der XML-Struktur versehen.
Nachdem
die XML-Struktur für die sprachabhängigen Texte
(structJSBS_XML_DisplayStrings
)
in einer Basisklasse des JS-FCF definiert ist, ist deren Name bekannt
und nicht änderbar. Damit kann an die Methode zum Zuordnen der
Texte zu den GUI-Elementen
(JSBS_GUIServices.processLanguageDependantElements(...)
)
einfach das aktuelle Frame (this
)
übergeben werden.
Verzeichnis
und Datei mit der XML-Struktur mit den sprachabhängigen Texten
erstellen
Die
Datei mit den sprachabhängigen Texten in deutscher Sprache muß
im Unterverzeichnis 'TEXT.de' (relativ zum Verzeichnis des Projects)
enthalten sein und als Dateinamen 'DisplayStrings.xml' haben.
Für
eine genauere Erläuterung der Verzeichnisstruktur für das
JS-FCF sehen Sie bitte im Dokument Verzeichnisstruktur
für die Entwicklung von Heavyweight-Clients mit JS-FCF
nach.
|
|
|
|
|
|
|
|
Die
gerade erstellte Datei wird mit der folgenden XML-Struktur
gefüllt.
Für eine detaillierte Erklärung der
Bedeutung der einzelnen XML-Elemente in der Struktur sehen Sie bitte
im Dokument Datei
'DisplayStrings.xml' mit sprachabhängigen Texten für die
Anzeige auf der GUI
nach.
<root>
<Layout>
<LabelFontName>
Dialog
</LabelFontName>
<LabelFontSize>
12
</LabelFontSize>
<LabelFontColor>
0
</LabelFontColor>
<LabelFontStyle>
0
</LabelFontStyle>
<TextFontName>
DialogInput
</TextFontName>
<TextFontSize>
12
</TextFontSize>
<TextFontColor>
0
</TextFontColor>
<TextFontStyle>
0
</TextFontStyle>
</Layout>
<CommonElements>
<CommonElement>
<ElementName>
btn_Continue
</ElementName>
<ElementText>
Weiter
</ElementText>
<ToolTipText>
Weiter
im Ablauf
</ToolTipText>
</CommonElement>
<CommonElement>
<ElementName>
btn_Help
</ElementName>
<ElementText>
Hilfe
</ElementText>
<ToolTipText>
Hilfe
für das Programm aufrufen
</ToolTipText>
</CommonElement>
<CommonElement>
<ElementName>
lbl_ApplicationTitle1
</ElementName>
<ElementText>
JavaScout
ProjectAssist
</ElementText>
<ToolTipText>
Projekt-Unterstützung
für das JavaScout Fat-Client-Framework
</ToolTipText>
</CommonElement>
</CommonElements>
<FrameIndividual>
<Frame>
<FrameClass>
js_projassist.client.JS_ProjAssist_CommandCenter
</FrameClass>
<FrameTitle>
CommandCenter
– ProjectAssist für das JavaScout Fat-Client-Framework / ©
2008 www.javascout.biz
</FrameTitle>
<Element>
<ElementName>
btn_Help
</ElementName>
<CommonElementReference>
btn_Help
</CommonElementReference>
</Element>
<Element>
<ElementName>
btn_Continue
</ElementName>
<CommonElementReference>
btn_Continue
</CommonElementReference>
</Element>
<Element>
<ElementName>
lbl_ApplicationTitle1
</ElementName>
<CommonElementReference>
lbl_ApplicationTitle1
</CommonElementReference>
<FontSize>
14
</FontSize>
<FontStyle>
2
</FontStyle>
</Element>
<Element>
<ElementName>
lbl_ApplicationTitle2
</ElementName>
<ElementText>
Auswahl
der Anwendungen
</ElementText>
<FontStyle>
2
</FontStyle>
</Element>
<Element>
<ElementName>
lbl_SelectableTasks
</ElementName>
<ElementText>
Wählbare
Geschäftsanwendungen:
</ElementText>
<ToolTipText>
Aufrufen
der Anwendung durch Eingabe des Codes und Klicken von
[Weiter]
</ToolTipText>
</Element>
<Element>
<ElementName>
lbl_OpenTasks
</ElementName>
<ElementText>
Aufgerufene
Geschäftsanwendungen:
</ElementText>
<ToolTipText>
Aufrufen
des Fensters durch Eingabe der Nummer und Klicken von
[Weiter]
</ToolTipText>
</Element>
<Element>
<ElementName>
pnl_OpenTasksTable
</ElementName>
<TableHeaderColumns>
<Column>
<SymbolicName>
Row-Number
</SymbolicName>
<ElementText>
Auswahl
</ElementText>
<Width>
3
</Width>
</Column>
<Column>
<SymbolicName>
SelectableCode
</SymbolicName>
<ElementText>
Anwendung
(Code)
</ElementText>
<Width>
10
</Width>
</Column>
<Column>
<SymbolicName>
TaskData
</SymbolicName>
<ElementText>
Bearbeitete
Daten
</ElementText>
<Width>
50
</Width>
</Column>
</TableHeaderColumns>
</Element>
<Element>
<ElementName>
lbl_Code
</ElementName>
<ElementText>
Auswahl:
</ElementText>
<ToolTipText>
Code
oder Nummer für wählbare oder aufgerufene
Geschäftsanwendung
</ToolTipText>
</Element>
<Element>
<ElementName>
lbl_Parameter1
</ElementName>
<ElementText>
Kriterium
1:
</ElementText>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
</Element>
<Element>
<ElementName>
lbl_Parameter2
</ElementName>
<ElementText>
Kriterium
2:
</ElementText>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
</Element>
<Element>
<ElementName>
lbl_Parameter3
</ElementName>
<ElementText>
Kriterium
3:
</ElementText>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
</Element>
<Element>
<ElementName>
txt_Code
</ElementName>
<ToolTipText>
Code
oder Nummer für wählbare oder aufgerufene
Geschäftsanwendung
</ToolTipText>
<InfoMessage>
Ausgewählte
Geschäftsanwendung anklicken oder Code oder Nummer eingeben und
dann [Weiter] anklicken
</InfoMessage>
</Element>
<Element>
<ElementName>
txt_Parameter1
</ElementName>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
<InfoMessage>
Parameter-Wert
für die aufzurufende Geschäftsanwendung; abhängig vom
gewählten Code
</InfoMessage>
</Element>
<Element>
<ElementName>
txt_Parameter2
</ElementName>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
<InfoMessage>
Parameter-Wert
für die aufzurufende Geschäftsanwendung; abhängig vom
gewählten Code
</InfoMessage>
</Element>
<Element>
<ElementName>
txt_Parameter3
</ElementName>
<ToolTipText>
Von
der Geschäftsanwendung abhängiger Wert der beim Aufrufen
'mitgegeben' wird
</ToolTipText>
<InfoMessage>
Parameter-Wert
für die aufzurufende Geschäftsanwendung; abhängig vom
gewählten Code
</InfoMessage>
</Element>
</Frame>
</FrameIndividual>
</root>
Für das einfache Verwalten von sprachabhängigen Texten und das Generieren der Datei mit der XML-Struktur wird die Verwendung JavaScout ProjectAssist empfohlen.
Die
Einstellungen und die Angabe der zu verwendenden Sprache als
Parameter wurden schon im vorigen Schritt ausgeführt und bleiben
als Einstellung für das 'Project' erhalten.
Zum Starten wird Run > Open Run Dialog ausgewählt. |
|
Die Einstellungen können noch einmal kontrolliert werden und nach dem Anklicken der Schaltfläche [ Run ] wird das Programm gestartet. |
|
|
|
Gesamter
Code am Ende des Schrittes
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.*;
/*
*
Package mit der Basisklasse für die Bearbeitung von
*
Dateien
mit XML-Strukturen. */
import
js_base.xml.*;
/*
*/
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);
/*
* 'Construct'
der XML-Struktur mit den sprachabhängigen Texten für
GUI-Elemente.
* Im Constructor wird die XML-Struktur
aus der Datei 'DisplayStrings.xml'
* im
Verzeichnis 'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten
Sprache
* (als Parameter der Methode 'main'
mitgegeben) ist. */
structJSBS_XML_DisplayStrings
=
new
JSBS_XML_DisplayStrings(
structJSBS_UniversalParameters
);
/*
* Prüfen
ob die XML-Struktur fehlerfrei gelesen werden konnte. */
if
(
structJSBS_XML_DisplayStrings
.
StatusCode
!=
structJSBS_XML_DisplayStrings
.
CONST_OK
)
{
new
JSBS_XML_DisplayStrings(
structJSBS_UniversalParameters
);
/* Fehler
beim Einlesen der XML-Struktur; Fehlermeldung und Status-Code auf
der Konsole ausgegen.
* Eine Beschreibung des
Fehler-Codes ist in der Interface JSBS_XML_Constants zu finden.
*/
System.out.println("Fehler
beim Einlesen von 'DisplayStrings.xml'; StatusCode: "
+
Integer.toString(structJSBS_XML_DisplayStrings
.
StatusCode
));
}
}/*
* 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
aufrufen mit der alle (in der Datei 'DisplayStrings.xml'
definierten)
* GUI-Elemente mit Text, Font und
ToolTipText versehen werden.
*/
JSBS_GUIServices.processLanguageDependantElements(this
);
}/*
* 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();
}
}
}
Dokument |
Inhalt |
Im nächsten Schritt des Tutorials wird vorgestellt, wie die XML-Struktur für die Liste mit den wählbaren Geschäftsanwendungen eingelesen und angezeigt wird und wie die Parameter für die Verbindung zur Datenbank eingelesen werden und die Verbindung zur Datenbank aufgebaut wird. |
|
Verzeichnisstruktur für die Entwicklung von Heavyweight-Clients mit JS-FCF |
In diesem Theorie-Dokument ist die Verzeichnisstruktur beschrieben, unter der die verwendeten Basis-Klassen die Datei mit den sprachabhängigen Texten erwartet. |
Datei 'DisplayStrings.xml' mit sprachabhängigen Texten für die Anzeige auf der GUI |
In diesem Theorie-Dokument ist die XML-Struktur der Datei (DisplayStrings.xml) mit den sprachabhängigen Texten für die GUI-Elemente beschrieben. |
Inhaltsverzeichnis für ProjectAssist; das Anwendungsprogramm zum Erstellen der XML-Datei. |