Per adesso mi interessa solamente stamparlo sulla console ma dopo devo creare l'interfaccia grafica. Comunque ho preferito utilizzare il metodo show e non il toString(), semplicemente perchè l'avevo già creato.![]()
Grazie x l'aiuto!
Per adesso mi interessa solamente stamparlo sulla console ma dopo devo creare l'interfaccia grafica. Comunque ho preferito utilizzare il metodo show e non il toString(), semplicemente perchè l'avevo già creato.![]()
Grazie x l'aiuto!
Ancora una volta ho bisogno del vostro prezziosissimo aiuto.
Ho creato alla fine della classe Rubrica una funzione per leggere la rubrica da un file esterno (rubrica.txt), ma alla penultima iga mi da errore e non riesco a capire il perchè; inoltre vorei sapere se per memorizzare nuovi contatti nello stesso file mi bastta invocare la funzione BufferWriter su Rubrica.txt o devo fare anche altro.![]()
codice:public static void main(String args[]){ BufferedReader input = null; try { input = new BufferedReader(new FileReader("Rubrica.txt")); } catch (FileNotFoundException e) { System.err.println("File non trovato"); System.exit(1); } catch (IOException e) { System.err.println("Errore imprevisto: " + e); System.exit(2); } // formato del file: // - ogni campo è formato da un numero QUALSIASI di caratteri // - ogni campo è separato dal successivo dal simbolo $ (tranne l'ultimo della riga) // Ogni riga contiene nell'ordine: NOME E COGNOME, INDIRIZZO, CITTA' try { while (input.ready()) { String riga = input.readLine(); // richiede un BufferedReader // ora la incapsulo in uno StringTokenizer per estrarre i vari pezzi java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(riga, "$\n\r"); // String nome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String cognome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String numero= tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String indirizzo = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String note = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro // con.add(new Contatto(nome,cognome,numero,note, indirizzo)); } input.close(); } catch (IOException e) { System.err.println("Errore imprevisto durante la lettura: " + e); System.exit(3); } // ora andiamo a vedere cosa c'è nel ArrayList (tutto insieme) System.out.println(con); // ora andiamo a vedere cosa c'è nel ArrayList<>(enumerato, un elemento per volta) for (java.util.Enumeration e=(con).elements() ; e.hasMoreElements() ; ) {//Mi da errore System.out.println(e.nextElement()); } }
Puoi usare l'iteratore della lista per poterla scorrere, oppure la iteri in modo tradizionale usando il metodo get.Originariamente inviato da Uffy_disp
Ancora una volta ho bisogno del vostro prezziosissimo aiuto.
Ho creato alla fine della classe Rubrica una funzione per leggere la rubrica da un file esterno (rubrica.txt), ma alla penultima iga mi da errore e non riesco a capire il perchè;
codice:// ora andiamo a vedere cosa c'è nel ArrayList<>(enumerato, un elemento per volta) for (java.util.Enumeration e=(con).elements() ; e.hasMoreElements() ; ) {//Mi da errore System.out.println(e.nextElement()); } }
Potresti usare un oggetto della classe FileWriter, questo ti consentirebbe di scrivere nel file in accodamento, cioè preservando i contatti salvati in precedenti scritture.Originariamente inviato da Uffy_disp
inoltre vorei sapere se per memorizzare nuovi contatti nello stesso file mi bastta invocare la funzione BufferWriter su Rubrica.txt o devo fare anche altro.
Così potrebbe andar bene?
codice:for(int i=0;i<con.size();i++){ for (java.util.Enumeration e=(Enumeration) con.get(i) ; e.hasMoreElements() ;i++ ) {//Mi da errore System.out.println(e.nextElement()); } } }
Non va bene. Prima intendevo dire che puoi fare una cosa del genere:Originariamente inviato da Uffy_disp
Così potrebbe andar bene?
codice:for(int i=0;i<con.size();i++){ for (java.util.Enumeration e=(Enumeration) con.get(i) ; e.hasMoreElements() ;i++ ) {//Mi da errore System.out.println(e.nextElement()); } } }
codice:for(int i = 0; i < con.size(); i++) System.out.println( con.get(i) );
Adesso penso di aver terminato la classe Rubrica, fatta nel seguente modo.
Adesso voglio proseguire nella creazione dell'interfaccia grafica, ma stò avendo una gran confusione, perche ho iniziato a fare la classe FreamRubrica ma nemmeno a metà dell'opera compaiono già un sacco di errori che non sò come coreggerecodice:import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; public class Rubricaa { private static ArrayList<Contatto> con; public Rubricaa(){ con = new ArrayList<Contatto>(); } public void addCon(Contatto c)throws Exception { boolean found = false; for(Contatto p: con){ if (p.getNome().equals(c.getNome())&& p.getCognome().equals(c.getCognome())|| p.getNum().equals(c.getNum())){ found = true; c.show(); } } if(!found)con.add(c); else throw new Exception(); } public static void vediCon(Contatto c){ boolean found = false; for(Contatto p: con){ if (p.getNome().equals(c.getNome())&& p.getCognome().equals(c.getCognome())|| p.getNum().equals(c.getNum())){ found = true; c.show(); } } System.out.println("Il contatto non è presente in rubrica"); } public void del(Contatto c){ for(Contatto p: con){ if(p.getNome().equals(c.getNome())|| p.getCognome().equals(c.getCognome())|| p.getNum().equals(c.getNum())){ c.delete(); } } } public void mod(Contatto c,String num,String notes,String addres){ boolean found = false; for(Contatto p: con){ if (p.getNome().equals(c.getNome())&& p.getCognome().equals(c.getCognome())|| p.getNum().equals(c.getNum())){ found = true; c.modifica(num,notes,addres); } } } public static void mostraRubrica(){ for(int i=0;i<con.size();i++) { Contatto contatto=con.get(i); contatto.show(); } } public static void main(String args[]){ BufferedReader input = null; try { input = new BufferedReader(new FileReader("Rubrica.txt")); } catch (FileNotFoundException e) { System.err.println("File non trovato"); System.exit(1); } catch (IOException e) { System.err.println("Errore imprevisto: " + e); System.exit(2); } // formato del file: // - ogni campo è formato da un numero QUALSIASI di caratteri // - ogni campo è separato dal successivo dal simbolo $ (tranne l'ultimo della riga) // Ogni riga contiene nell'ordine: NOME E COGNOME, INDIRIZZO, CITTA' try { while (input.ready()) { String riga = input.readLine(); // richiede un BufferedReader // ora la incapsulo in uno StringTokenizer per estrarre i vari pezzi java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(riga, "$\n\r"); // String nome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String cognome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String numero= tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String indirizzo = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String note = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro // con.add(new Contatto(new ContattoParameter(nome, cognome, numero, note, indirizzo))); } input.close(); } catch (IOException e) { System.err.println("Errore imprevisto durante la lettura: " + e); System.exit(3); } // ora andiamo a vedere cosa c'è nel ArrayList (tutto insieme) System.out.println(con); // ora andiamo a vedere cosa c'è nel ArrayList<>(enumerato, un elemento per volta) for(int i = 0; i < con.size(); i++) System.out.println( con.get(i) ); } }
ad esempio non riconosce il metodo add.Con() , vediCon() e mod(), perchè mi dice che mancano i parametri d'ingresso. Aiutoooooo sento che stò per mpazzirecodice:import java.io.File; import java.io.IOException; import java.awt.Component; import java.awt.Container; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JTextField; public class RubricaFrame extends JFrame implements ActionListener { private JButton nuovo,vedi,cerca,modifica,ok; private JTextField t1,t2,t3,t4,t5; private JPanel p; public RubricaFrame(){ super("Rubrica"); JPanel p=new JPanel(); Container c=getContentPane(); nuovo= new JButton("Nuovo Contatto"); vedi=new JButton("Vedi rubrica"); cerca=new JButton("Cerca"); modifica=new JButton("Modifica contatto"); ok=new JButton("OK"); t1= new JTextField("",15); t2= new JTextField("",15); t3= new JTextField("",10); t4= new JTextField("",25); t5= new JTextField("",20); nuovo.addActionListener(this); vedi.addActionListener(this); cerca.addActionListener(this); modifica.addActionListener(this); ok.addActionListener(this); t1.addActionListener(this); t2.addActionListener(this); t3.addActionListener(this); t4.addActionListener(this); t5.addActionListener(this); p.add(nuovo);p.add(vedi);p.add(cerca);p.add(vedi);p.add(modifica);p.add(ok); add(t1);add(t2);add(t2);add(t3);add(t4);add(t5); c.add(p); } public void actionPerformed(ActionEvent e){ Object a=e.getSource(); if(a==nuovo){ Rubricaa.addCon(); } if(a==vedi){ Rubricaa.mostraRubrica(); } if(a==cerca){ Rubricaa.vediCon(); } if(a==modifica){ Rubricaa.mod(Contatto c,String num,String notes,String addres); } if(a==t1){ } } }![]()
Non solo mancano i parametri, ma sbagli la loro invocazione!Originariamente inviato da Uffy_disp
ad esempio non riconosce il metodo add.Con() , vediCon() e mod(), perchè mi dice che mancano i parametri d'ingresso. Aiutoooooo sento che stò per mpazzire![]()
Ad esempio il metodo addCon è un metodo di istanza e non di classe.
Adesso stò provando a implementare la parte grafica, come stò procedendo? Mi potreste dare maggiori informazioni sull'implementazione dell'ActionPerformed?
Grazie![]()
codice:package Rubrica; import java.awt.event.ActionEvent; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JTextField; public class Rubrica extends JPanel implements ActionLstner { private static ArrayList<Contatto> con; public Rubrica(){ con = new ArrayList<Contatto>(); } private JMenu info; private JButton b1,b2,b3,b4; private JTextField t1,t2,t3,t4,t5; private JPanel p; b1=new JButton("Nuovo Contatto"); b2=new JButton("Cerca"); b3=new JButton("Vedi Rubrica"); b4=new JButton("modifica Contatto"); t1=new JTextField("Nome",15); t2=new JTextField("Cognome",15); t3=new JTextField("Numero",10); t4=new JTextField("indirizzo",30); t5=new JTextField("Note",30); b1.addActionListner(new ActionListner(this) ); b2.addActionListner(new ActionListner(this) ); b3.addActionListner(new ActionListner(this) ); b4.addActionListner(new ActionListner(this) ); t1.addActionListner(new ActionListner(this) ); t2.addActionListner(new ActionListner(this) ); t3.addActionListner(new ActionListner(this) ); t4.addActionListner(new ActionListner(this) ); t5.addActionListner(new ActionListner(this) ); info=new JMenuBar(); inf=new JMenu("info"); infItem=new JMenuItem[1]; infItem[0]=new JMenuItem("Informazioni"); inf.add(infItem[0]); infItem[0].addActionListner(new ListnerMenu(this)); public void addCon(Contatto c)throws Exception { boolean found = false; for(Contatto p: con){ if (p.getCognome().equals(c.getCognome())){ found = true; System.out.println("Il contatto già esiste"); } } if(!found)con.add(c); t1.setText(c.getNome()); t2.setText(c.getCognome()); t3.setText(c.getNum()); t4.setText(c.getInd()); t5.setText(c.getNote()); throw new Exception(); } public static void vediCon(Contatto c){ boolean found = false; for(Contatto p: con){ if ( p.getCognome().equals(c.getCognome())){ found = true; c.show(); } } System.out.println("Il contatto non è presente in rubrica"); } public void del(Contatto c){ for(Contatto p: con){ if( p.getCognome().equals(c.getCognome())){ c.delete(); } } } public void mod(Contatto c,String num,String notes,String addres){ boolean found = false; for(Contatto p: con){ if ( p.getCognome().equals(c.getCognome())){ found = true; c.modifica(num,notes,addres); } t3.setText(num); t4.setText(notes); t5.setText(addres); } } public static void mostraRubrica(){ for(int i=0;i<con.size();i++) { Contatto contatto=con.get(i); contatto.show(); } } public static void main(String args[]){ BufferedReader input = null; try { input = new BufferedReader(new FileReader("Rubrica.txt")); } catch (FileNotFoundException e) { System.err.println("File non trovato"); System.exit(1); } catch (IOException e) { System.err.println("Errore imprevisto: " + e); System.exit(2); } // formato del file: // - ogni campo è formato da un numero QUALSIASI di caratteri // - ogni campo è separato dal successivo dal simbolo $ (tranne l'ultimo della riga) // Ogni riga contiene nell'ordine: NOME E COGNOME, INDIRIZZO, CITTA' try { while (input.ready()) { String riga = input.readLine(); // richiede un BufferedReader // ora la incapsulo in uno StringTokenizer per estrarre i vari pezzi java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(riga, "$\n\r"); // String nome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String cognome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String numero= tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String indirizzo = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String note = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro // con.add(new Contatto(nome, cognome, numero, note, indirizzo)); } input.close(); } catch (IOException e) { System.err.println("Errore imprevisto durante la lettura: " + e); System.exit(3); } // ora andiamo a vedere cosa c'è nel ArrayList (tutto insieme) System.out.println(con); // ora andiamo a vedere cosa c'è nel ArrayList<>(enumerato, un elemento per volta) for(int i = 0; i < con.size(); i++) System.out.println( con.get(i) ); } public void ActionPerformed(ActionEvent e){ if(e.getSource==b1){ add.con(); } if(e.getSource==b2){ vediCon(); } if(e.getSource==b3){ mostraRubrica(); } if(e.getSource==b4){ modCon(); } } }
Scusate il codice che ho inserito prima è errato!!!
Mi spreste dire come posso implementare l'actionPerfomed?
codice:import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList;/* /** * * @author Piccettina */ import javax.swing.JButton; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextField; public class Rubrica extends JPanel implements ActionListener{ private static ArrayList<Contatto> con; private JPanel rubrica; private JMenu info; private JButton b1,b2,b3,b4; private JTextField t1,t2,t3,t4,t5; private JMenuItem[] infItem; public Rubrica(){ super(); con = new ArrayList<Contatto>(); b1=new JButton("Crea contatto"); b2=new JButton("Cerca"); b3=new JButton("Vedi Rubrica"); b4=new JButton("modifica Contatto"); t1=new JTextField("Nome",15); t2=new JTextField("Cognome",15); t3=new JTextField("Numero",10); t4=new JTextField("indirizzo",30); t5=new JTextField("Note",30); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); t1.addActionListener(this); t2.addActionListener(this); t3.addActionListener(this); t4.addActionListener(this); t5.addActionListener(this); info=new JMenu(); info=new JMenu("info"); infItem=new JMenuItem[1]; infItem[0]=new JMenuItem("Informazioni"); info.add(infItem[0]); infItem[0].addActionListener((this)); } public static void vediCon(Contatto c){ boolean found = false; for(Contatto p: con){ if ( p.getCognome().equals(c.getCognome())){ found = true; c.show(); } } System.out.println("Il contatto non è presente in rubrica"); } public void addCon(Contatto c) throws Exception { boolean found = false; for(Contatto p: con){ if (p.getCognome().equals(c.getCognome())){ found = true; System.out.println("Il contatto già esiste"); } } if(!found)con.add(c); t1.setText(c.getNome()); t2.setText(c.getCognome()); t3.setText(c.getNum()); t4.setText(c.getInd()); t5.setText(c.getNote()); throw new Exception(); } public void del(Contatto c){ for(Contatto p: con){ if( p.getCognome().equals(c.getCognome())){ c.delete(); } } } public void mod(Contatto c,String num,String notes,String addres){ boolean found = false; for(Contatto p: con){ if ( p.getCognome().equals(c.getCognome())){ found = true; c.modifica(num,notes,addres); } t3.setText(num); t4.setText(notes); t5.setText(addres); } } public static void mostraRubrica(){ for(int i=0;i<con.size();i++) { Contatto contatto=con.get(i); contatto.show(); } } public static void main(String args[]){ BufferedReader input = null; try { input = new BufferedReader(new FileReader("Rubrica.txt")); } catch (FileNotFoundException e) { System.err.println("File non trovato"); System.exit(1); } catch (IOException e) { System.err.println("Errore imprevisto: " + e); System.exit(2); } // formato del file: // - ogni campo è formato da un numero QUALSIASI di caratteri // - ogni campo è separato dal successivo dal simbolo $ (tranne l'ultimo della riga) // Ogni riga contiene nell'ordine: NOME E COGNOME, INDIRIZZO, CITTA' try { while (input.ready()) { String riga = input.readLine(); // richiede un BufferedReader // ora la incapsulo in uno StringTokenizer per estrarre i vari pezzi java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(riga, "$\n\r"); // String nome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String cognome = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String numero= tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String indirizzo = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro String note = tokenizer.nextToken().trim(); // elimina spazi davanti e dietro // con.add(new Contatto(nome, cognome, numero, note, indirizzo)); } input.close(); } catch (IOException e) { System.err.println("Errore imprevisto durante la lettura: " + e); System.exit(3); } // ora andiamo a vedere cosa c'è nel ArrayList (tutto insieme) System.out.println(con); // ora andiamo a vedere cosa c'è nel ArrayList<>(enumerato, un elemento per volta) for(int i = 0; i < con.size(); i++) System.out.println( con.get(i) ); } public void actionPerformed(ActionEvent e) { Contatto c=(Contatto)e.getSource(); } }
Prima di pensare all'implementazione del metodo, cerca di correggere il codice:Originariamente inviato da Uffy_disp
Scusate il codice che ho inserito prima è errato!!!
Mi spreste dire come posso implementare l'actionPerfomed?
ad esempio i vari componenti non vengono aggiunti al pannello.