TextField

AWT

In dit voorbeeld wordt een password ingevoerd en gecontroleerd

Applet

H8P5.jpg (10785 bytes)

Programmacode

// AwtTextField.java
// Demonstreert TextField events.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class AwtTextField extends Applet implements ActionListener {
   private TextField passwordField, meldingField;
   
   private Label vraagLabel = new Label("Geef Uw password: " );
   private String password = "java";  // het password

   public void init()  {
      // het passwordField wordt gemaskeerd met sterretjes (*)
      passwordField = new TextField( 9 );
      passwordField.setEchoChar( '*' ); // maskeren

      // het meldingField is niet te wijzigen
      meldingField = new TextField( 20 );
      meldingField.setEditable( false );

      // voeg de textfields toe aan de applet
      add( vraagLabel );
      add( passwordField );
      add( meldingField );
      
      // meld het passwordField aan bij de ActionListener
      passwordField.addActionListener(this);
   }

   public void actionPerformed( ActionEvent e )
   {
      // controleer of het een TextField event is
      if ( e.getSource() instanceof TextField )  { 

         // controleer of het een passwordField event is
         if ( e.getSource() == passwordField )  {

            // controleer het password
              if ( (e.getActionCommand()).equals( password ) )
		meldingField.setText( "Toegang" );
              else
                   meldingField.setText( "Ongeldig password.");
	}
      }
   }
}

Uitleg

Een TextField is een invoerveld in een grafisch omgeving. Om iets te kunnen invoeren moet het TextField zgn. focus hebben. Dit is te zien doordat de cursor links in het veld staat te knipperen.

De TextField is afgeleid van het TextComponent. Deze levert methoden om de tekst te schrijven en te lezen in het TextField (getText en setText) en allerlei methoden om gedeelten uit de tekst te selecteren. Verder kan vanuit het TextComponent de TextField op alleen lezen worden ingesteld met setEditable(false). Het TextField klasse zelf heeft methoden voor het instellen voor het gebruik van pass-woorden. Verder kan het formaat worden ingesteld.

init methode
Het passwordField wordt geinitieerd met 9 posities breed en krijgt sterretje als de karakters die weergegeven worden.
Het meldingField is alleen bedoeld om de meldingsteksten "Toegang" en "Ongeldig password" weer te geven. Dit TextField wordt als niet te wijzigen ingesteld met de methode setEditable(false)

Alleen het passwordField is te gebruiken voor invoer en deze wordt dan ook aangemeld bij de ActionListener- in dit geval deze klasse (this).

public void init() {
 passwordField = new TextField( 9 );
 passwordField.setEchoChar( '*' ); // maskeren

 meldingField = new TextField( 20 );
 meldingField.setEditable( false );

 add( vraagLabel );
 add( passwordField );
 add( meldingField );
 
 passwordField.addActionListener(this);
} 

actionPerformed methode
De eventafhandeling in stappen:

public void actionPerformed( ActionEvent e )   {
      // controleer of het een TextField event is
      if ( e.getSource() instanceof TextField )  { 

         // controleer of het een passwordField event is
         if ( e.getSource() == passwordField )  {

            // controleer het password
              if ( (e.getActionCommand()).equals( password ) )
		meldingField.setText( "Toegang" );
              else
                   meldingField.setText( "Ongeldig password.");
	}
      }
   }

de TextField klasse

class TextField extends TextComponent
 
TextField(); een leeg tekstVeld
TextField(int cols); geen met aantal posities
TextField(String text); een tekst
TextField(String text, int cols); een tekst met aantal positie
 
void setEchoChar(char c); stel het echo karakter in
boolean echoCharIsSet(); Vraag of het echo karakter aan staat
char getEchoChar(); Vraag het huidige echo karakter
 
int getColumns(); Vraag het aantal positie
void setColumn(int cols) stel het aantal posities in
 
Dimension getMinimumSize(); bereken de minimale afmeting
Dimension getPreferredSize(); bereken de gewenste afmeting

de TextComponent klasse

 
class TextComponent extends Component
 
String getText(); haal de huidige tekst
void setText(String t); stel de huidige tekst in
 
void setEditable(boolean t); wel of niet wijzigen van de tekst
boolean isEditable(); wat is de huidige instelling
 
getCaretPosition() vraag de caret positie
setCaretPosition() stel de caret positie in
 
int getSelectionStart(); de beginpositie van de selectie
int getSelectionEnd(); de eindpositie van de selectie
String getSelectedText(); haal de geselecteerde tekst
void select(int selStart, int selEnd); selecteer een tekstblok
void selectAll(); selecteer de gehele tekst
copyright ® Little World 1998