import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MenuModifica extends JDialog implements ActionListener { private JLabel[] etichette; private JTextField[] campi; public MenuModifica(JFrame owner, String nome, String cognome) { // Chiama il costruttore della classe base per il titolo super(owner, true); // Preleva il riferimento a se stesso come contenitore Container contenitore = getContentPane(); contenitore.setLayout(new GridLayout(Persona.NUMERO_CAMPI, 2)); // Aggiungi le etichette e i campi di testo etichette = new JLabel[Persona.MAIL + 1]; campi = new JTextField[Persona.MAIL + 1]; for (int i = Persona.NOME; i<= Persona.MAIL; i++) { etichette[i] = new JLabel(Persona.NOMI_CAMPI[i]); campi[i] = new JTextField(50); contenitore.add(etichette[i]); contenitore.add(campi[i]); } //Il nome e il cognome della persona sono già impostati campi[Persona.NOME].setText(nome); campi[Persona.NOME].disable(); campi[Persona.COGNOME].setText(cognome); campi[Persona.COGNOME].disable(); // Imposta il dialogo come action listener di se stesso // che agisce sulla pressione di invio nell'ultimo campo campi[Persona.MAIL].addActionListener(this); // Dimensiona e rende visibile la finestra setSize(400, 200); setVisible(true); } public Persona modificaPersona( ) { Persona p = new Persona(); p.imposta(Persona.NOME, campi[Persona.NOME].getText()); p.imposta(Persona.COGNOME, campi[Persona.COGNOME].getText()); for (int i = Persona.INDIRIZZO; i <= Persona.MAIL; i++) { p.imposta(i, campi[i].getText()); } return p; } public void actionPerformed(ActionEvent event) { this.dispose(); } }