pip5.gif (2901 bytes)

Ancora più azione!

Consideriamo il seguente codice:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Iva extends Applet implements ActionListener {
Button tasto = new Button("premi!");
Font textFont = new Font("Dialog", Font.BOLD, 20);
String Str = new String("");
String Ris = new String("");
TextField yourText = new TextField(Str, 15);
int x=0;
int y=0;



public void init() {
    add(tasto);
    tasto.addActionListener(this);
    add(yourText);
   
   
}
public void actionPerformed(ActionEvent e) {
    Str = yourText.getText();
    x = Integer.parseInt(Str);
    y = x + x / 5;
    Ris = Integer.toString(y);
    repaint();
}

public void paint (Graphics g) {
    g.setFont(textFont);
    g.setColor(Color.red);
    g.drawString("Il prezzo con IVA è:" + Ris, 20, 50);
    }

}

 

dopo averlo inserito in una pagina web il risultato dovrebbe essere:

Se inserite 100000 e premete il pulsante, viene fuori: "Il prezzo con IVA è: 120000". Però se inserite 100008, viene fuori: "Il prezzo con IVA è: 120009" (il 20% di 100008 è 20001,6, quindi dovrebbe venire 120009,6 ma il formato usato non tiene conto dei decimali).

Analizziamo il codice. Dopo avere importato i soliti pacchetti, si dichiarano le variabili; abbiamo due oggetti nuovi: due stringhe e un campo testo (TextField). Il campo testo si costruisce con: TextField(Str, int) dove Str è una stringa e dove int è un intero che indica il numero di spazi (lunghezza del campo testo); la stringa può anche essere vuota. Il parametro int non è indispensabile (cioè si può anche indicare TextField(Str)).

Nel blocco init() si aggiungono il pulsante con l'ActionListener e il campo testo. Il campo testo servirà all'utente per immettere i suoi dati.

E' nel blocco actionPerformed che si svolge l'azione.

Dobbiamo ricuperare i dati dell'utente,  metterli nel formato giusto (int) per manipolarli e poi ritrasformali per rispedirli all'utente.

Applichiamo la funzione getText() al campo testo yourText e mettiamo il risultato nella stringa Str (più precisamente l'oggetto yourText chiama il metodo getText()).

Con Integer.parseInt(Str) traduciamo il contenuto della stringa Str nel formato int (interi), abbiamo l'intero x col quale possiamo fare dei conti (una stringa è una serie di caratteri, non si possono fare conti con i caratteri).

Calcoliamo il 20% (x/5) e lo aggiungiamo ad x, otteniamo l'intero y (siccome la divisione è fatta con int, i decimali vanno persi; nel formato int, 5/2 è uguale a 2. Vedremo altri formati di numeri.)

Adesso mettiamo il risultato (l'int y) in una stringa con Integer.toString(y) = Ris

Ci rimane solo da "stampare" (disegnare) la stringa Ris, però volendo avere una presentazione più carina vogliamo che il risultato sia preceduto da "Il prezzo con IVA è:", per questo concatteniamo la stringa "Il prezzo con IVA è:" e la stringa Ris con il segno +  e "stampiamo" la stringa "Il prezzo con IVA è:" + Ris

In questa semplice applet abbiamo visto come prendere dati dall'utente, manipolarli e restituirli, per questo sono necessari procedimenti di conversione tra tipi diversi (essenzialmente da String a int e viceversa con Integer.parseInt() e Integer.toString())

avanti02.gif (9574 bytes)fleche_retour.gif (1377 bytes)