esercizioRettangolo

Esercizio di riepilogo per calcolo area rettangolo

Per ricapitolare la base delle interfacce grafiche viste finora insieme all'uso di dati di tipo numerico proviamo per esercizio a costruire un programma che calcola l'area di un rettangolo: in pratica questo qui sotto.

programma rettangolo in funzione

Potrebbe essere una buona idea a questo punto provare a farlo da solo, in ogni caso qui sotto c'è il programma con alcune spiegazioni inserite come commenti nella parte di calcolo. Supponiamo che i lati del rettangolo siano numeri interi, del resto per i numeri in virgola mobile cambia molto poco.

Il programma

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class Rettangolo extends Application {

  Label lBase = new Label("base:");
  TextField tfBase = new TextField();
  Label lAltezza = new Label("altezza:");
  TextField tfAltezza = new TextField();
  Button bArea = new Button("area"); 
  Label lArea = new Label("?");

  @Override
  public void start(Stage finestra) {
    GridPane griglia = new GridPane();
    griglia.add(lBase,     0, 0);
    griglia.add(tfBase,    1, 0);
    griglia.add(lAltezza,  0, 1);
    griglia.add(tfAltezza, 1, 1);
    griglia.add(bArea,     0, 2);
    griglia.add(lArea,     1, 2);

    bArea.setOnAction(e -> calcolaArea());

    Scene scena = new Scene(griglia);
    finestra.setTitle("Rettangolo");
    finestra.setScene(scena);
    finestra.show();
  }

  private void calcolaArea(){
    // dichiaro la variabile "area" che userò dopo
    int area;
    	
    // leggo il contenuto della casella, è un testo
    // quindi uso una variabile di tipo String
    String testoBase = tfBase.getText();
    // a me serve però il numero corrispondente
    // così che io possa usare la variabile "base"
    // per fare la moltiplicazione
    // quindi devo trasformare un testo in un numero intero
    // es: "56" → 56
    int base = Integer.parseInt(testoBase);
    	
    // posso fare in un solo passaggio quello che ho fatto
    // nelle due righe di programma sopra
    int altezza = Integer.parseInt(tfAltezza.getText());
    	
    // calcolo l'area del rettangolo
    area = base * altezza;
    	
    // scrivo l'area nell'etichetta, siccome però nelle
    // etichette posso scrivere soltanto dei testi
    // concateno (uso il +) una stringa vuota ""
    // alla variabile int area in modo da avere un testo
    // un po' l'operazione inversa fatta da Integer.parseInt
    // 12 → "12"
    lArea.setText(""+area);
  }

  public static void main(String[] args) {
    launch(args);
  }
}

Per esercizio si può aggiungere il pulsante per calcolare il perimetro.