Die Benutzerschnittstellen des AWT


... [ Seminar WWW und JAVA]... [Applets und das Java AWT] ... [Animation] ...

Übersicht dieser Seite:


Dialogfelder

Dialogfelder werden meist benutzt, wenn man Meldungen zu bestimmten Aktionen ausgeben möchte oder Daten vom Benutzer eingegeben werden sollen.

Es gibt 2 Arten von Dialogfeldern:

Syntax in der Hauptklasse:

Dialogfelder werden Objekttyp Dialogfeld abgeleitet und müssen von FRAME und nicht von Applet spezifiziert werden.
Der Aufruf bzw. die Darstellung erfolgt dann durch die Funktion .show(). Show sorgt dafür, daß das Dialogfeld auf den Bildschirm gezeichnet wird.


...
Dialogfeld
feld = new Dialogfeld( Frame Bezeichner);
feld.show();

Syntax der Klasse eines Dialogfeldes:

Ein Dialogfeld - Klasse muß vom Typ Dialog abgelitten werden.
Desweiteren verweist die Klasse mittels super auf die aufrufenden Klasse bzw. das aufrufende Fenster.

class Dialogfeld extends Dialog
{
public Dialogfeld (Frame parent)
{
super (parent, "
Titel", [true/false])
.
.

Zurück zum Inhaltsverzeichnis


Datenaustausch

Kann auf Basis der Dialogfelder geschehen.
Es gibt in Java keine einfache Art Daten aus einem Dialogfeld in das Hauptprogramm zu bekommen, da alle Daten sofort beim Verlassen Fensters vernichtet werden.

Es gibt die Möglichkeit kurz nach dem Vernichten des Fensters eine Funktion der aufrufenden Klassen aufzurufen, um die Daten zu übergeben. Dies macht das Programm aber Funktionsabhängig, da auch in späteren Programmen derselbe Funktionsname verwendet werden muß, wenn das Dialogfenster auch später nochmals in anderen Programmen verwendet werden soll.

Deshalb gibt es die allgemeine Schnittstelle interface ResultProcessor.
Mit dieser Schnittstelle ist es möglich, die Daten unabhängig von der aufrufenden Klasse, zu übergeben.

Implementierung in der Hauptklasse:

In der Hauptklasse muß der ResultProcessor implementiert werden und der Rückgabewert in das entsprechende Format konvertiert werden.

class xyz extends Frame implements ResultProcessor
{
....

public void processResult(Dialog source, Object obj)
{
if (source instanceof ConnectDialog)
{
ConnectInfo result = (ConnectInfo) obj;
......
}
}
......

Implementierung in der Dialogklasse:

In der Dialogklasse wird sofort nach dem Vernichten der ResultProzessor gestartet und die Daten übergeben. Dabei werden mehere Daten zu einem Rückgabewert zusammengefaßt und müssen in der Hauptklasse wieder voneinander getrennt werden.

....
public boolean action(Event evt, Object arg)
{ if(arg.equals("Bedingung"))
{ dispose();
((ResultProcessor)getParent()).processResult(this, Rückgabewert); }
...


Zurück zum Inhaltsverzeichnis


Textfelder & Textbereiche

Textfelder ermöglichen die Eingabe von Daten durch den Benutzer.
Dabei gilt die Faustformel, daß man die Textfelder um einen Buchstaben länger macht, als man darstellen will, da sonst bedingt durch die unteschiedlichen Schriften der Systeme Buchstaben veschwinden können oder nicht mehr vollständig dargestellt werden.

Die Eingabe in Textfelder kann beliebig lang werden. Wenn die Länge des Textfeldes überschritten wird, scrollt der text nach links aus dem Textfeld heraus. Dabei gehen keine Zeichen verloren und man kann mittels der Pfeiltasten zurückskrollen.

Die Texteingabe wird mit RETURN abgeschlossen.

Syntax von Textfeldern:

Panel p = new Panel();
TextField
tf = new TextFiled("Name", Größe in Zeichen);
p.add(tf);

Textfelder müssen einen eindeutigen Bezeichner haben, damit auf sie zugegriffen werden kann.
Deswegen können sie nicht durch p.add(TextField .... ) erzeugt werden, da man sie über das Objekt p nicht eindeutig referenzieren kann.

Methoden für Textfelder:

void setText(String t) - Setzen/Verändern eines Textes in ein Textfeld

String getText() - Auslesen eines Textes aus einem Textfeld


Textbereiche
sind für Benutzereingaben, die mehr als eine Zeile umfassen sollen.


Es können die Anzahl der Spalten und Zeilen festgelegt werden, die sichtbar sein sollen.
Auch gilt wieder Regel, daß man lieber eine Zeile und eine Spalte mehr nehmen soll als man darstellen möchte, da man nicht weiß, wie der Textbereich auf dem einzelnen System aussehen wird.


Syntax von Textbereichen:

TextArea(int Reihen, int Spalten)

Die Eingabeprüfung:

Bei JAVA gibt es keine Typprüfung von eingegebenen Daten. Man muß diese Prüfungen selber implementieren und gegebenfalls die Eingabe in das gewünschte Fromat konvertieren.

Zurück zum Inhaltsverzeichnis.


Textverarbeitung

In JAVA stehen folgende Methoden zur Textbearbeitung und Textverarbeitung zur Verfügung.
Weitere Funktionen gibt es nicht und man muß alle weiteren Funktionen, die man verwenden möchte, selber definieren und implementieren.


Methoden der Textselektionen:

void select all() - selektiert den gesamten Text

void select (int Startpos, int Endpos) - Textselektion von Startpos bis Endpos

int getSelectionStart() - Ergibt die Anfangsposition der Selektion

int getSelectionEnd() - Ergibt die Position nach dem letzten selektierten Text

String getSelectedText() - Auslesen des selektierten Textes


Die üblichen Methoden der Bearbeitung:

void insertText ( String str, int position) - Einfügen an der Stelle position

void appendText ( String Str) - Anhängen an einen Text

void replaceText ( String str, int start, int end ) - Ersetzung einer Zeichenkette mit einer anderen


Zurück zum Inhaltsverzeichnis.


... [ Seminar WWW und JAVA]... [Applets und das Java AWT] ... [Zum Anfang der Seite] ... [Animation] ...