Het inlezen van een getal

hoofdstuk 1

In dit voorbeeld wordt een getal ingelezen vanaf het toetsenbord en vervolgens afgedrukt op de statusbalk van de browser.

De applet

De programmacode

// Invoer.java
import java.awt.*; 		// voor TextField en Label
import java.awt.event.*;		// voor ActionEvent	
import java.applet.Applet;	// voor Applet
public class Invoer extends Applet implements ActionListener {
    Label vraag; 
    TextField invoer; 
    public void init() {
       // Stap1 creëeren
       vraag = new Label( "Type het getal in en druk op Enter " );
       invoer = new TextField( 10 ); 
       // Stap2 Aanmelden bij de layoutmanager
       add( vraag ); 	      
       add( invoer );  	
       // Stap3 Koppelen van de eventListener
       invoer.addActionListener(this); 
    }
       // Stap4 Afhandelen van het ActionEvent
    public void actionPerformed( ActionEvent e) {
       // Stap5 lezen van de gegevens
       String tekst = invoer.getText(); 
       // Stap6 converteren van String naar integer
       int getal= Integer.parseInt(tekst);  
       // Stap7 toon het resultaat
       showStatus( "Het getal is " + getal ); 
    }
}

De uitleg

Analyse

In dit voorbeeld kunnen we de volgende deeltaken onderscheiden:

Stap1 Creëer een Label en een TextField
Voor het weergeven van de vraag wordt een Label gebruikt. Een Label is een standaard component.
In een grafische omgeving worden ingetypte getallen niet zomaar naar het beeldscherm gestuurd. Op het beeldscherm moet een invoerveld aanwezig zijn waar deze getallen terecht kunnen komen. In Java heet zo'n invoerveld een TextField.

De init methode van de applet wordt door de browser aangeroepen voordat de applet op het beeldscherm zichtbaar wordt. Dit is dus een geschikte plaats om variabelen te initialiseren en geheugen aan te vragen voor de gebruikte klassen.

vraag = new Label( "Type het getal in en druk op Enter " );
invoer = new TextField( 10 ); 

Stap2 Aanmelden bij de layoutManager
De zichtbare componenten moeten een bepaalde plaats krijgen op het scherm. Deze klus kan het beste overgelaten worden aan de FlowLayout manager, die in de applet is ingebouwd. De componenten worden bij deze manager aangemeld met de methode add. De manager plaats de elementen op volgorde van binnenkomst. De componenten worden achter elkaar in de applet geplaatst. Mocht de applet te smal zijn, dan worden de componenten onder elkaar geplaatst en vervolgens gecentreerd. Dit geeft bij tijd en wijle een afgrijselijke layout, maar deze FlowLayout is het eenvoudigste in het gebruikt

add( vraag ); 
add( invoerVeld ); 

Stap3 Koppelen van de eventListener
Als na het intypen van de tekst op de Enter toets wordt gedrukt wordt er een ActionEvent gegenereerd. Dit event moet afgehandeld worden. Hiervoor wordt de TextField (de bron van het event) gekoppeld aan een actionListener(het eindpunt van het event). In dit geval is de applet (Invoer) ook de actionListener. Bij de klasseaanhef staat implement ActionListener. Dit betekent dat de gegenereerde actionEvent wordt doorgestuurd naar de actionPerformed methode van de applet. Dus moet deze applet deze methode actionPerformed bevatten. De koppeling tussen de eventbron (TextField) en eventListener( deze Hallo applet) komt tot stand met de zin:

invoer.addActionListener(this); 

Stap4 Afhandelen van de ActionEvent
De actionPerformed methode wordt aangeroepen als er gebeurtenis (event) heeft plaats gevonden. Gebeurtenissen zijn o.a. de gebruiker heeft een knop ingedrukt of de gebruiker heeft de Enter toets ingedrukt in een TextField, enz.

Stap5 Lees de ingevoerde gegevens uit het TextField
Zoals de naam al aangeeft kan met een TextField alleen tekst worden ingevoerd. De tekst wordt opgevraagd met methode

invoer.getText(); 

Stap6 converteer het van een string naar een integer
De string wordt doorgegeven aan de parseInt, die een string omzet naar een getal. De uitvoer van parseInt wordt toegekend aan de variabele getal. De methode parseInt is onderdeel van de klasse Integer.

int getal= Integer.parseInt(tekst);

Stap7 Druk het getal af op de statusbalk
Voor het uitvoeren van tekst naar de statusbalk is de methode showStatus beschikbaar. showStatus is een methode, die een tekst in de statusbalk van de browser afdrukt. In dit geval willen we een tekst gevolgd door de waarde van het getal afdrukken. Met het + teken worden twee tekstStrings samengevoegd tot één tekstString. Het getal wordt impliciet geconverteerd naar een String.

showStatus( "Het getal is " + getal ); 
copyright © Little World 1998