Ho riscritto il codice ma ho ancora dei problemi.Lo posto per intero con tutto il ringraziamento per la pazienza di leggerlo:
codice:
import javax.swing.*;
import java.awt.*;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.*;
import java.lang.*;
public class Rubrica extends JFrame implements ActionListener {
JButton VisualizzaContatto=new JButton("Visualizza Contatto");
JButton AggiungiContatto=new JButton("Aggiungi Contatto");
JButton ModificaContatto=new JButton("Modifica Contatto");
JButton RimuoviContatto=new JButton("Rimuovi Contatto");
JButton LeggidaFile=new JButton("Leggi da File");
public Rubrica(){
super("Rubrica");
GridLayout p=new GridLayout(4,0);
JPanel p1=new JPanel();
p1.setLayout(p);
add(p1);
p1.add(VisualizzaContatto);
p1.add(AggiungiContatto);
p1.add(ModificaContatto);
p1.add(RimuoviContatto);
p1.add(LeggidaFile);
setSize(400,200);
show();
AggiungiContatto.addActionListener(this);
ModificaContatto.addActionListener(this);
RimuoviContatto.addActionListener(this);
LeggidaFile.addActionListener(this);
VisualizzaContatto.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==VisualizzaContatto){
new FinestraVisualizzaContatto();
} else if(e.getSource()==AggiungiContatto)
{
new FinestraAggiungiContatto();
} else if (e.getSource()==ModificaContatto)
{
new FinestraModificaContatto();
}else if(e.getSource()==RimuoviContatto)
{
new FinestraRimuoviContatto();
}else if(e.getSource()==LeggidaFile){
try
{
Runtime.getRuntime().exec("notepad Rubrica.txt");
}catch (Exception f) {
System.out.println ("Errore exec:" + f);
}
}
}
public static void main(String[] args){
new Rubrica();
}
class Contatto{
private FinestraAggiungiContatto a=new FinestraAggiungiContatto();
ArrayList<String> lista=new ArrayList();
String b= a.nomeb.getText();
String c=a.cognomeb.getText();
String d=a.telb.getText();
String e=a.emailb.getText();
String f;
public void Contatto(){
lista.add(b);
lista.add(c);
lista.add(d);
lista.add(e);
f=(String) lista.set(0,b);
System.out.println(f);
}
}
public class FinestraVisualizzaContatto extends JFrame {
Contatto a=new Contatto();
public FinestraVisualizzaContatto(){
List ricerca=new List();
JLabel nome1=new JLabel("Nome: ");
JLabel nomea=new JLabel();
JLabel cognome1=new JLabel("Cognome: ");
JLabel cognomea=new JLabel();
JLabel tel1=new JLabel("Telefono: ");
JLabel tela=new JLabel();
JLabel email1=new JLabel("E-mail: ");
JLabel emaila=new JLabel();
GridLayout p=new GridLayout(5,2);
JPanel p1=new JPanel();
p1.setLayout(p);
add(p1);
p1.add(nome1);
p1.add(nomea);
p1.add(cognome1);
p1.add(cognomea);
p1.add(tel1);
p1.add(tela);
p1.add(email1);
p1.add(emaila);
p1.add(ricerca);
setSize(300,300);
show();
ricerca.add(a.lista.get(0));
}
}
public class FinestraAggiungiContatto extends JFrame implements ActionListener {
JLabel nome2=new JLabel("Nome: ");
JLabel cognome2=new JLabel("Cognome: ");
JLabel tel2=new JLabel("Telefono: ");
JLabel email2=new JLabel( "E-mail: ");
JTextField nomeb=new JTextField();
JTextField cognomeb=new JTextField();
JTextField telb=new JTextField();
JTextField emailb=new JTextField();
String nome=nomeb.getText();
JButton salva=new JButton("Salva");
public FinestraAggiungiContatto(){
GridLayout p2=new GridLayout(5,2);
JPanel p3=new JPanel();
p3.setLayout(p2);
add(p3);
p3.add(nome2);
p3.add(nomeb);
p3.add(cognome2);
p3.add(cognomeb);
p3.add(tel2);
p3.add(telb);
p3.add(email2);
p3.add(emailb);
p3.add(salva);
salva.addActionListener(this);
setSize(300,300);
show();
}
public void inserisci(){
try
{
FileWriter writer = new FileWriter("Rubrica.txt", true);
PrintWriter out=new PrintWriter(writer);
out.println("Contatto");
out.println(nomeb.getText());
out.println(cognomeb.getText());
out.println(telb.getText());
out.println(emailb.getText());
out.println("");
writer.flush();
writer.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==salva){
inserisci();
}
}
}
public class FinestraModificaContatto extends JFrame {
JLabel nome3=new JLabel("Nome: ");
JLabel cognome3=new JLabel("Cognome: ");
JLabel tel3=new JLabel("Telefono: ");
JLabel email3=new JLabel( "E-mail: ");
JTextField nomec=new JTextField();
JTextField cognomec=new JTextField();
JTextField telc=new JTextField();
JTextField emailc=new JTextField();
public FinestraModificaContatto(){
GridLayout p3=new GridLayout(4,2);
JPanel p4=new JPanel();
p4.setLayout(p3);
add(p4);
p4.add(nome3);
p4.add(nomec);
p4.add(cognome3);
p4.add(cognomec);
p4.add(tel3);
p4.add(telc);
p4.add(email3);
p4.add(emailc);
setSize(300,300);
show();
}
}
public class FinestraRimuoviContatto extends JFrame {
JLabel nome4=new JLabel("Nome: ");
JLabel cognome4=new JLabel("Cognome: ");
JLabel tel4=new JLabel("Telefono: ");
JLabel email4=new JLabel( "E-mail: ");
JTextField nomed=new JTextField();
JTextField cognomed=new JTextField();
JTextField teld=new JTextField();
JTextField emaild=new JTextField();
public FinestraRimuoviContatto(){
GridLayout p3=new GridLayout(4,2);
JPanel p4=new JPanel();
p4.setLayout(p3);
add(p4);
p4.add(nome4);
p4.add(nomed);
p4.add(cognome4);
p4.add(cognomed);
p4.add(tel4);
p4.add(teld);
p4.add(email4);
p4.add(emaild);
//pack();
setSize(300,300);
show();
}
}
}
Ho pensato di popolare una list con i dati che prendo da un'arraylist. L'ArrayList l'ho creata nella classe Contatto. Poi nel frame FinestraVisualizzaContatto ho aggiunto una List che prende i valori dall'ArrayList e li non funziona.Non visualizza nulla.Dove sbaglio?.
A questo punto vi sarei grato se mi diceste se ho impostato bene tutto il programma, fra l'altro quando visualizzo il frame FinestraVisualizzaContatto mi si apre anche il Frame FinestraAggiungiContatto.