Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

AWT: Regioni

Precedente
SUPERIORE
Successiva

Progetta un’applicazione con GUI completa che riceve i dati

nome regione, numero abitanti, numero province, estensione

e produce le seguenti elaborazioni

  1. densità della popolazione
  2. numero medio di abitanti per provincia
  3. messaggio di sintesi di tutte le informazioni disponibili.

Il layout proposto è il seguente

Regione Popolazione Riepilogo
... ...
Estensione Province
... ...
   
Popolazione/Estensione Popolazione/Province

Codice

import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class Regioni extends Frame implements ActionListener
{
   Panel     centrale; 
   Label     lRegione, lPopolazione,lProvince, lEstensione,
             lPop_Pro, lPop_Est; 
   TextField tfRegione, tfPopolazione, tfProvince, tfEstensione;
   Button    riepilogo, bPop_Pro, bPop_Est; 

   public Compito()
   {
      // centrale
      centrale=new Panel();
      centrale.setLayout(new GridLayout(6, 2));

      lRegione    =new Label("Regione");     tfRegione    =new TextField("..."); 
      lPopolazione=new Label("Popolazione"); tfPopolazione=new TextField("..."); 
      lProvince   =new Label("Province");    tfProvince   =new TextField("..."); 
      lEstensione =new Label("Estensione");  tfEstensione =new TextField("..."); 
      lPop_Est    =new Label("");
      lPop_Pro    =new Label("");

      bPop_Est=new Button("Popolazione/Estensione");
      bPop_Est.addActionListener(this);

      bPop_Pro=new Button("Popolazione/Province");
      bPop_Pro.addActionListener(this);

      centrale.add(lRegione);     centrale.add(lPopolazione);
      centrale.add(tfRegione);    centrale.add(tfPopolazione);
      centrale.add(lEstensione);  centrale.add(lProvince);
      centrale.add(tfEstensione); centrale.add(tfProvince);
      centrale.add(lPop_Est);     centrale.add(lPop_Pro);
      centrale.add(bPop_Est);     centrale.add(bPop_Pro);

      this.add(centrale, BorderLayout.CENTER); 

      // destra
      riepilogo=new Button("Riepilogo");
      riepilogo.addActionListener(this);
      this.add(riepilogo, BorderLayout.EAST);

      //globale
      this.setTitle("Regione e popolazione");
      this.pack();
      this.setResizable(false);
      this.setVisible(true);
   }

   public void actionPerformed(ActionEvent ae)
   {
      
      String evento=ae.getActionCommand();

      if(evento.equals("Popolazione/Estensione"))
         lPop_Est.setText("Densità: " + p_e());
      else if(evento.equals("Popolazione/Province")) 
         lPop_Pro.setText("Densità: " + p_p()); 
      else if(evento.equals("Riepilogo"))
         JOptionPane.showMessageDialog
         (
            null,
            "La regione " + tfRegione.getText()+ "\n" + " ha " +
            tfPopolazione.getText() + " abitanti" + "\n" +
            " e una estensione di " + tfEstensione.getText() +
            " km quadrati" + "\n" + " per una densita\' di " +
            p_p() + " persone per km quadrato"
         ); 
   } 

   long p_e()
   {
      double p_e=Double.parseDouble(tfPopolazione.getText()) /
                 Double.parseDouble(tfEstensione.getText());
      return Math.round(p_e); 
   }

   long p_p()
   {
      double p_p=Double.parseDouble(tfPopolazione.getText()) /
                 Double.parseDouble(tfProvince.getText());
      return Math.round(p_p); 
   }

   public static void main(String args[])
   {
      Regioni c=new Regioni(); 
   }
}

AWT: Regioni - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva