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