Java Micro: Textbox
Die TextBox ist eine Klasse die es den Nutzer_Innen ermöglicht Text in ein J2ME Programm einzugeben. Diese Klasse ist ähnlich wie die Klasse Alert nicht sonderlich umfangreich, besitzt aber dennoch ihre Tücken. Sie bietet umfangreiche Funktionen für die Manipulation der Eingabe und hilft die Nutzer_Innen einzuschränken, in dem Was bzw. Wieviel eingegeben werden kann. Bei dem Was unterscheidet J2ME in sechs Arten. Welche durch die Funktion setConstraints() oder dem Konstruktor gesetzt werden können.
Arten | Beschreibung |
---|---|
ANY | alles wird akzeptiert |
EMAILADDR | nur e-mail Adressen werden akzeptiert |
NUMERIC | nur Zahlen werden akzeptiert |
PHONENUMBER | nur Telefonnummern werden akzeptiert |
URL | nur URL's werden akzeptiert |
DECIMAL | NUMERIC plus "-","." ect. werden akzeptiert |
Zusätlich gibt es sechs verschiedene Anzeigearten der Eingaben.
Arten | Beschreibung |
---|---|
PASSWORD | für Eingaben die nichtlesbar seien sollen |
UNEDITABLE | nicht editierbar |
SENSITIVE | für Eingaben die niemals gespeichert werden, in Wörterbüchern oder ähnliches. z.B. Kreditkartennummern |
NON_PREDICTIVE | für Text der Warscheinlich nicht in Wörterbüchern auftaucht und somit Zeichen für Zeichen eigegeben werden muss |
INITIAL_CAPS_WORD | Anfangsbuchstaben jedes Wortes werden groß geschrieben |
INITIAL_CAPS_SENTENCE | Anfangbuchstaben eines Satzes werden groß geschrieben |
Diese können auch durch logische Verknüpfungen kombiniert werden. Hier ein Beispiel:
setConstraints(TextField.EMAILADDR | NON_PREDICTIVE);
Dies ist eine Mögliche Kombination die nur e-mail Adressen akzeptiert und den Nutzer_Innen eine leichte Eingabe ermöglichen soll. Um Limits für die Maximale Zeichenanzahl zu setzen wird die Methode setMaxSize(int size)
genutzt. Der maximal Eingabestring kann aber auch durch das Device beschränkt sein. So gibt es Geräte die nicht mehr als 32 Zeichen akzeptieren. Diese Parameter können aber auch durch den Konstruktor an die TextBox übergeben werden. Wie bei den Alerts, ist der Konstruktor auch bei der TextBox sehr mächtig.
TextField(String label, String text, int maxSize, int constraints);
Über ihn können alle wichtigen Parameter für eine TextBox übergeben werden.
Weitere Methoden dieser Klasse sind z.B. setString(String text)
welche einen String in die Box einfügt. Einzelne Buchstaben können auch mit der Hilfe von insert(String text, int position)
eingefügt werden.
Hier ein Beispiel für eine Implementierung einer Textbox:
import javax.microedition.lcdui.*; import javax.microedition.midlet.MIDlet; public class TextBoxBeispiel extends MIDlet { private TextBox textBox1; // definiert textBox1 vom Typ TextBox public TextBoxBeispiel() { textBox1 = new TextBox("Ihr Name?", "Bitte geben sie ihren Geburtsnamen ein:", 60, TextField.INITIAL_CAPS_WORD | TextField.NON_PREDICTIVE); /*hier wird textBox1 erstellt mit der Überschrift und dem Text zur Eingabeaufforderung. Sie bietet Platz für 60 Zeichen. */ } public void startApp() { Display display = Display.getDisplay(this); display.setCurrent(textBox1); //bringt textBox1 zur Anzeige txtBox1.setString("Max Mustermann"); //setzt einen String in die TexBox } public void pauseApp() {} public void destroyApp(boolean unconditional) {} }