TextField |
In dit voorbeeld wordt een password ingevoerd en gecontroleerd
// 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.");
}
}
}
}
|
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.");
}
}
}
| 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 |