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.

ArtenBeschreibung
ANYalles wird akzeptiert
EMAILADDRnur e-mail Adressen werden akzeptiert
NUMERICnur Zahlen werden akzeptiert
PHONENUMBERnur Telefonnummern werden akzeptiert
URLnur URL's werden akzeptiert
DECIMALNUMERIC plus "-","." ect. werden akzeptiert

Zusätlich gibt es sechs verschiedene Anzeigearten der Eingaben.

ArtenBeschreibung
PASSWORDfür Eingaben die nichtlesbar seien sollen
UNEDITABLEnicht editierbar
SENSITIVEfür Eingaben die niemals gespeichert werden, in Wörterbüchern oder ähnliches. z.B. Kreditkartennummern
NON_PREDICTIVEfür Text der Warscheinlich nicht in Wörterbüchern auftaucht und somit Zeichen für Zeichen eigegeben werden muss
INITIAL_CAPS_WORDAnfangsbuchstaben jedes Wortes werden groß geschrieben
INITIAL_CAPS_SENTENCEAnfangbuchstaben 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) {}
}