FinestraPrincipale.java
Created with JBuilder |
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FinestraPrincipale
extends JFrame
implements ActionListener {
// Codici corrispondenti ai bottoni
private static final int UPDATE = 0;
private static final int DELETE = 1;
private static final int MODIFY = 2;
private static final int SEARCH = 3;
private static final int REFRESH = 4;
private static final int END = 5;
private static final int NUM_BOTTONI = 6;
// Nomi dei bottoni
private static final String[] NOMI_BOTTONI = {
"Aggiungi", "Cancella", "Modifica", "Cerca", "Aggiorna", "Fine"
};
// Oggetti grafici
private JTextArea areaRisultati;
private JButton[] bottoni;
private JPanel pannelloBottoni;
// Riferimento all'oggetto agenda
private GestioneAgenda gestoreAgenda;
// Il costruttore imposta la visualizzazione della finestra
public FinestraPrincipale(GestioneAgenda gestore) {
// Chiama il costruttore della classe base per il titolo
super("Programma per la gestione agenda");
// Imposta il riferimento al gestore dell'agenda
gestoreAgenda = gestore;
// Preleva il riferimento a se stesso come contenitore
Container contenitore = getContentPane();
// Crea un'area di testo con barre di scorrimento
areaRisultati =
new JTextArea(gestoreAgenda.restituisciTuttiNominativi(), 8, 80);
areaRisultati.setFont(new Font("courier",Font.PLAIN,16));
contenitore.add( new JScrollPane(areaRisultati), BorderLayout.NORTH);
// Crea un pannello bottoni e lo aggiunge alla finestra
bottoni = new JButton[NUM_BOTTONI];
pannelloBottoni = new JPanel();
pannelloBottoni.setLayout(new GridLayout(1, bottoni.length));
for (int i = UPDATE; i <= END; i++) {
bottoni[i] = new JButton(NOMI_BOTTONI[i]);
pannelloBottoni.add(bottoni[i]);
// La pressione di ogni bottone è intercettata da questa classe
bottoni[i].addActionListener(this);
}
contenitore.add(pannelloBottoni, BorderLayout.SOUTH);
// Imposta le dimensioni e rendi visibile la finestra
setSize(800,300);
setVisible(true);
}
public void actionPerformed(ActionEvent event) {
String nome, cognome, cap,indirizzo;
Persona p = new Persona();
int i = UPDATE;
while ((event.getSource() != bottoni[i]) && (i <= END)) ++i;
switch (i) {
case UPDATE :
MenuAggiunta menuAggiunta = new MenuAggiunta(this);
p = menuAggiunta.richiediPersona();
gestoreAgenda.aggiungi(p);
break;
case DELETE :
nome = JOptionPane.showInputDialog(this, "Inserisci il nome:");
cognome = JOptionPane.showInputDialog(this, "Inserisci il cognome:");
p.imposta(Persona.NOME, nome);
p.imposta(Persona.COGNOME, cognome);
gestoreAgenda.elimina(p);
areaRisultati.setText("Eliminato: " + p.toString());
break;
case MODIFY :
nome = JOptionPane.showInputDialog(this, "Inserisci il nome:");
cognome = JOptionPane.showInputDialog(this, "Inserisci il cognome:");
MenuModifica menuModifica = new MenuModifica(this, nome, cognome);
p = menuModifica.modificaPersona( );
for (int j = Persona.INDIRIZZO; j <= Persona.MAIL; ++j) {
if (!p.restituisci(j).equals("")) {
gestoreAgenda.modifica(p, j, p.restituisci(j));
}
}
break;
case SEARCH :
nome = JOptionPane.showInputDialog(this, "Inserisci il nome:");
cognome = JOptionPane.showInputDialog(this, "Inserisci il cognome:");
p = gestoreAgenda.ricercaNominativoPer(nome,cognome);
areaRisultati.setText(p.toString());
break;
case REFRESH :
areaRisultati.setText(gestoreAgenda.restituisciTuttiNominativi());
break;
case END :
System.exit(0);
}
}
public static void main(String args[]) {
GestioneDB gestoreDB = new GestioneDB();
gestoreDB.apri("jdbc:odbc:Agenda");
GestioneAgenda gestoreAgenda = new GestioneAgenda(gestoreDB, "Recapiti");
FinestraPrincipale gestoreGUI = new FinestraPrincipale(gestoreAgenda);
gestoreGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
FinestraPrincipale.java
Created with JBuilder |