codice:
private class FrameAggiungiNominativo extends JFrame implements ActionListener{
private JTextField cognome, nome, prefisso, telefono;
private JButton ok;
public FrameAggiungiNominativo(){
setTitle("Aggiunta Nominativo");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(verificaUscita()){
agendina.aggiungi(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome.toUpperCase(),
FinestraGUI.this.prefisso, FinestraGUI.this.telefono));
}
cognome.setText("");
nome.setText("");
prefisso.setText("");
telefono.setText("");
cognomeOk = false;
nomeOk = false;
prefissoOk = false;
telefonoOk = false;
FrameAggiungiNominativo.this.setVisible(false);
}
}// windowClosing
);
cognomeOk = false;
nomeOk = false;
prefissoOk = false;
telefonoOk = false;
JPanel p = new JPanel();
p.setLayout(new FlowLayout()); // ridondante
p.add(new JLabel("Cognome", JLabel.RIGHT));
p.add(cognome = new JTextField("", 12));
p.add(new JLabel("Nome", JLabel.RIGHT));
p.add(nome = new JTextField("", 12));
p.add(new JLabel("Prefisso", JLabel.RIGHT));
p.add(prefisso = new JTextField("", 12));
p.add(new JLabel("Telefono", JLabel.RIGHT));
p.add(telefono = new JTextField("", 12));
p.add(ok = new JButton("OK"));
add(p);
cognome.addActionListener(this);
nome.addActionListener(this);
prefisso.addActionListener(this);
telefono.addActionListener(this);
ok.addActionListener(this);
setLocation(250, 340);
setSize(400, 150);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == cognome){
FinestraGUI.this.cognome = cognome.getText();
FinestraGUI.this.cognomeOk = true;
}
if(e.getSource() == nome){
FinestraGUI.this.nome = nome.getText();
FinestraGUI.this.nomeOk = true;
}
if(e.getSource() == prefisso){
FinestraGUI.this.prefisso = prefisso.getText();
FinestraGUI.this.prefissoOk = true;
}
if(e.getSource() == telefono){
FinestraGUI.this.telefono = telefono.getText();
FinestraGUI.this.telefonoOk = true;
}else if(e.getSource() == ok){
if(verificaUscita()){
agendina.aggiungi(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome.toUpperCase(),
FinestraGUI.this.prefisso, FinestraGUI.this.telefono));
this.setVisible(false);
cognomeOk = false;
nomeOk = false;
prefissoOk = false;
telefonoOk = false;
cognome.setText("");
nome.setText("");
prefisso.setText("");
telefono.setText("");
}
}
}// actionPerformed
private boolean verificaUscita(){
return cognomeOk && nomeOk && prefissoOk && telefonoOk;
}// verificaUscita
}// FrameAggiungiNominativo
private class FrameRimuoviNominativo extends JFrame implements ActionListener{
private JTextField cognome, nome;
private JButton ok;
public FrameRimuoviNominativo(){
setTitle("Rimozione Nominativo");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(verificaUscita()){
agendina.rimuovi(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome.toUpperCase(), "", ""));
}
cognomeOk = false;
nomeOk = false;
cognome.setText("");
nome.setText("");
FrameRimuoviNominativo.this.setVisible(false);
}// windowClosing
});
cognomeOk = false;
nomeOk = false;
prefissoOk = false;
telefonoOk = false;
JPanel p = new JPanel();
p.setLayout(new FlowLayout()); // ridondante
p.add(new JLabel("Cognome", JLabel.RIGHT));
p.add(cognome = new JTextField("", 12));
p.add(new JLabel("Nome", JLabel.RIGHT));
p.add(nome = new JTextField("", 12));
p.add(ok = new JButton("OK"));
add(p);
cognome.addActionListener(this);
nome.addActionListener(this);
ok.addActionListener(this);
setLocation(250, 340);
setSize(400, 150);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == cognome){
FinestraGUI.this.cognome = cognome.getText();
FinestraGUI.this.cognomeOk = true;
}
if(e.getSource() == nome){
FinestraGUI.this.nome = nome.getText();
FinestraGUI.this.nomeOk = true;
}else if(e.getSource() == ok){
if(verificaUscita()){
agendina.rimuovi(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome.toUpperCase(), "", ""));
this.setVisible(false);
cognome.setText("");
nome.setText("");
}
}
}// actionPerformed
private boolean verificaUscita(){
return cognomeOk && nomeOk;
}// verificaUscita
}// FrameRimuoviNominativo
private class FrameTelefonoDi extends JFrame implements ActionListener{
private JTextField cognome, nome;
private JButton ok;
public FrameTelefonoDi(){
setTitle("Ricerca telefono di un nominativo");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(verificaUscita()){
Nominativo n = agendina.cerca(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome
.toUpperCase(), "", ""));
cognome.setText("");
nome.setText("");
if(n != null)
JOptionPane.showMessageDialog(null,
"Telefono della persona cercata: " + n.getPrefisso() + "-" + n.getTelefono());
else
JOptionPane.showMessageDialog(null, "Nominativo inesistente!");
}
FrameTelefonoDi.this.setVisible(false);
}
});
cognomeOk = false;
nomeOk = false;
JPanel p = new JPanel();
p.setLayout(new FlowLayout()); // ridondante
p.add(new JLabel("Cognome", JLabel.RIGHT));
p.add(cognome = new JTextField("", 12));
p.add(new JLabel("Nome", JLabel.RIGHT));
p.add(nome = new JTextField("", 12));
p.add(ok = new JButton("OK"));
add(p);
cognome.addActionListener(this);
nome.addActionListener(this);
ok.addActionListener(this);
setLocation(250, 340);
setSize(400, 150);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == cognome){
FinestraGUI.this.cognome = cognome.getText();
FinestraGUI.this.cognomeOk = true;
}
if(e.getSource() == nome){
FinestraGUI.this.nome = nome.getText();
FinestraGUI.this.nomeOk = true;
}else if(e.getSource() == ok){
if(verificaUscita()){
Nominativo n = agendina.cerca(new Nominativo(FinestraGUI.this.cognome.toUpperCase(), FinestraGUI.this.nome
.toUpperCase(), "", ""));
this.setVisible(false);
cognome.setText("");
nome.setText("");
if(n != null)
JOptionPane.showMessageDialog(null, "Telefono della persona cercata: " + n.getPrefisso() + "-" + n.getTelefono());
else
JOptionPane.showMessageDialog(null, "Nominativo inesistente!");
}
}
}// actionPerformed
private boolean verificaUscita(){
return cognomeOk && nomeOk;
}// verificaUscita
}// FrameTelefonoDi
private class FramePersonaDi extends JFrame implements ActionListener{
private JTextField prefisso, telefono;
private JButton ok;
public FramePersonaDi(){
setTitle("Ricerca persona di prefisso e telefono");
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(verificaUscita()){
Nominativo n = agendina.cerca(FinestraGUI.this.prefisso, FinestraGUI.this.telefono);
prefisso.setText("");
telefono.setText("");
if(n != null)
JOptionPane.showMessageDialog(null, "Persona trovata: " + n.getCognome().toUpperCase() + " "
+ n.getNome().toUpperCase());
else
JOptionPane.showMessageDialog(null, "Nominativo inesistente!");
}
FramePersonaDi.this.setVisible(false);
}
});
prefissoOk = false;
telefonoOk = false;
JPanel p = new JPanel();
p.setLayout(new FlowLayout()); // ridondante
p.add(new JLabel("Prefisso", JLabel.RIGHT));
p.add(prefisso = new JTextField("", 12));
p.add(new JLabel("Telefono", JLabel.RIGHT));
p.add(telefono = new JTextField("", 12));
p.add(ok = new JButton("OK"));
add(p);
prefisso.addActionListener(this);
telefono.addActionListener(this);
ok.addActionListener(this);
setLocation(250, 340);
setSize(400, 150);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == prefisso){
FinestraGUI.this.prefisso = prefisso.getText();
FinestraGUI.this.prefissoOk = true;
}
if(e.getSource() == telefono){
FinestraGUI.this.telefono = telefono.getText();
FinestraGUI.this.telefonoOk = true;
}else if(e.getSource() == ok){
if(verificaUscita()){
Nominativo n = agendina.cerca(FinestraGUI.this.prefisso, FinestraGUI.this.telefono);
this.setVisible(false);
prefisso.setText("");
telefono.setText("");
if(n != null)
JOptionPane.showMessageDialog(null, "Persona trovata: " + n.getCognome().toUpperCase() + " "
+ n.getNome().toUpperCase());
else
JOptionPane.showMessageDialog(null, "Nominativo inesistente!");
}
}
}// actionPerformed
private boolean verificaUscita(){
return prefissoOk && telefonoOk;
}// verificaUscita
}// FramePersonaDi
private class FrameElenco extends JFrame{
private JTextArea area;
public FrameElenco(){
setTitle("Elenco Nominativi");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p = new JPanel();
p.setLayout(new FlowLayout()); // ridondante
JTextArea area = new JTextArea(10, 25);
area.setEditable(false);
JScrollPane sp = new JScrollPane(area);
p.add(sp);
add(p);
if(agendina.size() != 0)
area.append(agendina.toString());
else
area.append("Agendina vuota!");
setLocation(250, 340);
setSize(400, 150);
}
}// FrameElenco
private void menuIniziale(){
apri.setEnabled(false);
salva.setEnabled(false);
salvaConNome.setEnabled(false);
aggiungiNominativo.setEnabled(false);
rimuoviNominativo.setEnabled(false);
numeroNominativi.setEnabled(false);
svuota.setEnabled(false);
telefonoDi.setEnabled(false);
personaDi.setEnabled(false);
elenco.setEnabled(false);
}// menuIniziale
private void menuAvviato(){
tipoAL.setEnabled(false);
tipoLL.setEnabled(false);
tipoSet.setEnabled(false);
tipoMap.setEnabled(false);
apri.setEnabled(true);
salva.setEnabled(true);
salvaConNome.setEnabled(true);
aggiungiNominativo.setEnabled(true);
rimuoviNominativo.setEnabled(true);
numeroNominativi.setEnabled(true);
svuota.setEnabled(true);
telefonoDi.setEnabled(true);
personaDi.setEnabled(true);
elenco.setEnabled(true);
}// menuAvviato
private boolean consensoUscita(){
int option = JOptionPane.showConfirmDialog(null, "Continuare ?", "Uscendo si perderanno tutti i dati non salvati!", JOptionPane.YES_NO_OPTION);
return option == JOptionPane.YES_OPTION;
}// consensoUscita