Progetta un’applicazione con GUI completa che
riceve i dati
nome regione, numero abitanti, numero province, estensione
e produce le seguenti elaborazioni
- densità della popolazione
- numero medio di abitanti per provincia
- 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();
}
} |