Rubrica aiutino..

di il
6 risposte

Rubrica aiutino..

Ciao ragazzi, oggi pomeriggio mi sono dato un auto esercizio per smanettare un po' con le interfacce grafiche, fare una rubrica. Ora non avendo mai usato le interfacce grafiche mi trovo davvero in difficoltà..avevo pensato di fare innanzitutto due classi Persona e Telefono impostandole così
Persona
import java.util.ArrayList;


public class Persona 
{
	public Persona(String nome, String marca, Telefono telefono) {
		this.setNome(nome);
		this.setCognome(nome);
		this.telefono=telefono;
		// TODO Auto-generated constructor stub
	}
	private String nome;
	private String cognome;
	private Telefono telefono;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCognome() {
		return cognome;
	}
	public void setCognome(String cognome) {
		this.cognome = cognome;
	}
	@Override
	public String toString()
	{
		return nome+ " " + cognome;
	}

}
Telefono
import java.util.ArrayList;
import java.util.List;


public class Telefono 
{
	private String nome;
	private String marca;
	private ArrayList <String> numeri;
	
	public Telefono(String nome,String marca,ArrayList<String> numeri)
	{
		this.setMarca(marca);
		this.setNome(nome);
		this.setNumeri(numeri);
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public ArrayList<String> getNumeri() {
		return numeri;
	}

	public void setNumeri(ArrayList<String> numeri) {
		this.numeri = numeri;
	}
	
}
Come impostazione potrebbe andare bene?? Ora pensavo di fare una tabella con l'aiuto del windows Builder con colonne e righe dove sia possibile inserire manualmente i dati,dovrebbe andare no?

6 Risposte

  • Re: Rubrica aiutino..

    ercucchiaio ha scritto:


    Persona
    No ... ehm, quasi. C'è un pochino di pasticcio.
    Cosa c'entra 'marca'? Nome lo usi 2 volte nel costruttore. Poi perché non ci sono i getter/setter per il telefono?

    ercucchiaio ha scritto:


    Telefono
    Strutturalmente/tecnicamente mi pare corretta.

    ercucchiaio ha scritto:


    Come impostazione potrebbe andare bene??
    Salvo gli errorini, sì, la impostazione in generale delle due classi è sensata e appropriata.

    Un numero di telefono (la classe Telefono rappresenta solo un telefono "fisico") lo potresti rappresentare eventualmente anche con una apposita classe. Ma magari è troppo per la tua necessità.

    ercucchiaio ha scritto:


    Ora pensavo di fare una tabella con l'aiuto del windows Builder con colonne e righe dove sia possibile inserire manualmente i dati,dovrebbe andare no?
    Ripeto il consiglio: cerca di pensare di più in termini di Swing .... e non di un editor di GUI.
  • Re: Rubrica aiutino..

    andbin ha scritto:


    ercucchiaio ha scritto:


    Persona
    No ... ehm, quasi. C'è un pochino di pasticcio.
    Cosa c'entra 'marca'? Nome lo usi 2 volte nel costruttore. Poi perché non ci sono i getter/setter per il telefono?
    Questi errori sono perchè ho cancellato e riscritto più volte per farne uscire una cosa decente..mi fa piacere l'idea sia appropriata..buon per me. Per il resto davvero non so come continuare, Volevo costruire la classe Rubrica con l'interfaccia (ne so troppo poco di swing, aspetto il libro), ma proprio non riesco a metterci mano anche in termini di idee e pur avendo ormai le classi..
  • Re: Rubrica aiutino..

    ercucchiaio ha scritto:


    (ne so troppo poco di swing, aspetto il libro), ma proprio non riesco a metterci mano anche in termini di idee e pur avendo ormai le classi..
    Capisco ma realizzare una "rubrica" non è di certo banale, dipendentemente anche da come la si vuole realizzare.
    Domanda: hai provato a realizzare qualcosa di più semplice?
  • Re: Rubrica aiutino..

    Una calcolatrice con le 4 operazioni, è venuta.. per il resto la rubrica sta procedendo, dimmi cosa te ne pare. Ho creato una classe Rubrica (con l'interfaccia) e corretto gli errori delle classi Persona e Telefono.

    Ora (sperando di non fare macelli col copia e incolla) nella classe Rubrica ho innanzitutto creato un metodo che mi crea un file pdf Rubrica o mi dice che è già presente, ecco il codice del metodo:
    public void Crea()
    	{
    		JFrame finestra2 = new JFrame("File creato?");
    		finestra2.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		finestra2.setVisible(true);
    		finestra2.setBounds(400, 100, 200, 80);
    		//////////////////////////////////////////
    		JTextField risposta = new JTextField();
    		risposta.setVisible(true);
    		risposta.setBounds(20,20,20,20);
    		///////////////////////////////////
    	if (file.exists()) 
    		{
    		risposta.setText("File già esistente");
    		} 
    	else
    		try 
    	        {
    			if (file.createNewFile())
    			    {	
    				risposta.setText("File creato con successo!");
    			    }
    			
    		    } 
    	catch (IOException e) 
    	   {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    	   }
    finestra2.add(risposta);
          }
    	
    
    }
    Questa finestra qua l'ho creata io..ed ecco un imm di come viene (tutto funzionante)

    e devo dire la verità sono contento. Ora ti dico come vorrei continuare.
    Creare giusto un record con nome, cognome, e telefono da compilare; un pulsate che salva nel file di testo il record ed un ultimo pulsante che mostra tutti i numeri salvati..mh come la vedi?
  • Re: Rubrica aiutino..

    Allora era in costruzione il pulsante Salva, con cui volevo scrivere sul messaggio di testo Tutti i campi, e l'avevo pensato così.
    SalvaButton.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent arg0) {
    				try {
    					fileWriter = new FileWriter(file);
    				} catch (IOException e) {
    					e.printStackTrace();
    					try {
    						fileWriter.write(textNome.getText()+" "+textCognome.getText()+":\nnumero:"+txtNumero.getText()+",marca:"+textMarca.getText()+",nome:"+txtNome.getText());
    						fileWriter.flush();
    						fileWriter.close();
    						System.out.println("Tutto ok.");
    					} catch (IOException e1) {
    						// TODO Auto-generated catch block
    						e1.printStackTrace();
    					}
    				}
    			}
    		});
    Purtroppo mi sono reso conto di non aver usato per nulla la classe persona e quindi già avevo capito di aver sbaglio l'impostazione proprio, ma allo stesso tempo comunque non mi funziona, dov'è che sbaglio??
    Il codice funziona bene, mi salva tutto sul file pdf (ho fatto qualche ritocco), ma se cambio nome e salvo mi cancella il precedente..
  • Re: Rubrica aiutino..

    Working in progress del mio primo lavoretto..
    [IMG]http://i60.tinypic.com/rw57y1.jpg[/IMG]
    Il pulsante salva inserisce tutti i dati creando un nuovo oggetti di tipo Persona e lo aggiunge ad un arraylist.
    SalvaButton.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent arg0) 
    			{
    	persona.add(new Persona(textNome.getText(),textCognome.getText(),new Telefono(txtNumero.getText(),textMarca.getText(),txtNome.getText())));
    	textEsito.setText("Positivo");
    	
    			}
    il pulsante Ok invece li scrive tutti nel file di testo creato dal pulsante crea rubrica.
    JButton endButton = new JButton("ok");
    		endButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				try {
    					fileWriter = new FileWriter(file);
    				
    				bf = new BufferedWriter(fileWriter);
    				Iterator<Persona> bfIteratore = persona.iterator();
    				while(bfIteratore.hasNext())
    				{
    					bfIteratore.next();
    					bf.write("Numero di telefono :"+txtNumero.getText()+".   Marca:"+textMarca.getText()+".   Nome:"+txtNome.getText());
    					bf.newLine();
    				}
    				
    					bf.flush();
    					bf.close();
    					textEsito.setText("Positivo");
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				
    			}
    		});
    E funziona tutto, anche se non mi piace affatto quel write del bufferedWriter,ma io l'override del toString nella classe persona l'ho fatto, e avevo provato a farlo anche nella dichiarazione dell'arraylist,ho provato anche direttamente con l'iteratore.. ma continua a darmelo in esadecimale e quindi per il momento l'ho provato così..

    la jtextline esito ho intenzione di farla andare in positivo o negativo per 2 secondi ad ogni azione con una pausa del thread e farla tornare in attesa.
    Nient'altro..work in progress, mi piacerebbe avere considerazioni

    Edit: risolto tutto, si va avanti
Devi accedere o registrarti per scrivere nel forum
6 risposte