Professional Documents
Culture Documents
2. Dopo l’inserimento dei dati, l’utente può premere il pulsante “Conferma”, per
confermare la prenotazione o il pulsante “Annulla”, per non confermarla.
− La pressione sul pulsante “Conferma” ha come effetto la memorizzazione della
prenotazione in un array di oggetti “Prenotazione” e la comunicazione all’utente
stesso dell’avvenuta registrazione, mediante visualizzazione di una finestra di
dialogo.
− La pressione del pulsante “Annulla” ha come effetto la cancellazione dei dati
inseriti dalla GUI e la comunicazione dell’avvenuto annullamento attraverso una
finestra di dialogo.
Suggerimenti
§ Utilizzare la classe FormLayout per impostare il layout della GUI, relativamente ai soli
campi testo e relative etichette.
§ Creare una classe Prenotazione, con i metodi necessari alla gestione delle
prenotazioni.
§ Creare una classe FormPrenotazioni per realizzare l’interfaccia.
La classe FormLayout
(C. S. Horstmann, Progettazione del software e design pattern in Java, Apogeo, 2004, p.
213-215)
import java.awt.*;
Bocchi Cinzia
1
02/04/2010
Esercizi Java
left= Math.max(left,dleft.width);
right= Math.max(right,dright.width);
height= height + Math.max(dleft.height,dright.height);
}
return new Dimension(left+GAP+right,height);
}
for(int i=0;i<components.length;i+=2)
{
Component cleft= components[i];
Component cright= components[i+1];
Dimension dleft= cleft.getPreferredSize();
Dimension dright= cright.getPreferredSize();
int height= Math.max(dleft.height,dright.height);
int xleft= xcenter-dleft.width;
int yleft= y+(height-dleft.height)/2;
cleft.setBounds(xleft,yleft,dleft.width,dleft.height);
int xright= xcenter+GAP;
int yright= y+(height-dright.height)/2;
cright.setBounds(xright,yright,dright.width,dright.height);
y= y+height;
}
}
Bocchi Cinzia
2
02/04/2010
Esercizi Java
La GUI FormPrenotazioni
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//variabili di istanza
private Container contentPane;
private JPanel cpanel;
private JPanel spanel;
private Prenotazione[] arrayPrenotazioni;
private int indice;
public FormPrenotazioni()
{
super("Prenota il tuo biglietto!");
setSize(LARGHEZZA,ALTEZZA);
setLocation(X,Y);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane= getContentPane();
arrayPrenotazioni= new Prenotazione[DIM];
indice= 0;
//PANNELLO CENTRALE
cpanel= new JPanel();
cpanel.setLayout(new FormLayout());
cpanel.add(cognLabel);
cpanel.add(cognText);
cpanel.add(nomeLabel);
cpanel.add(nomeText);
cpanel.add(telLabel);
Bocchi Cinzia
3
02/04/2010
Esercizi Java
cpanel.add(telText);
cpanel.add(cittapLabel);
cpanel.add(cittapText);
cpanel.add(cittadLabel);
cpanel.add(cittadText);
cpanel.add(dataLabel);
cpanel.add(dataText);
//PANNELLO SUD
spanel= new JPanel();
JButton conferma= new JButton("Conferma");
JButton annulla= new JButton("Annulla");
spanel.add(conferma);
spanel.add(annulla);
contentPane.add(cpanel,BorderLayout.CENTER);
contentPane.add(spanel,BorderLayout.SOUTH);
Bocchi Cinzia
4
02/04/2010
Esercizi Java
for(int i=0;i<indice;i++)
{
Prenotazione p= arrayPrenotazioni[i];
System.out.println(p.toString());
}
}
La classe Prenotazione
//costruttore
public Prenotazione(String cognome, String nome, String telefono, String cittaP, String cittaD, String
data)
{
this.cognome= cognome;
this.nome= nome;
this.telefono= telefono;
this.cittaP= cittaP;
this.cittaD= cittaD;
this.data= data;
}
Bocchi Cinzia
5
02/04/2010
Esercizi Java
//metodi get
public String getCognome()
{
return cognome;
}
public String getNome()
{
return nome;
}
public String getTelefono()
{
return telefono;
}
public String getCittaP()
{
return cittaP;
}
public String getCittaD()
{
return cittaD;
}
public String getData()
{
return data;
}
//metodi set
//li fate voi!!!!!!!
____________________________________________________________________
Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribuzione-Non commerciale 2.5 Italia.
Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-nc/2.5/it/ o
spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California,
94105, USA.
Bocchi Cinzia
6
02/04/2010