Você está na página 1de 4

Atividade: Alterar o programa para gerar os IDs dos clientes e produtos de modo incremental.

package aula; public class Cadastro { public String file(){ return null; } } // ************************************************* package aula; public class Produto extends Cadastro { private int id; private String nome; public Produto(int id, String nome) { this.id = id; this.nome = nome; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Override public String toString() { return id + ";" + nome; } public String file(){ return "produto.txt"; } } // ************************************************************ package aula; public class Cliente extends Cadastro { private int id; private String nome; public Cliente(int id, String nome) { this.id = id; this.nome = nome; }

public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Override public String toString() { return id + ";" + nome; } public String file(){ return "cliente.txt"; } } //************************************************** package aula; import import import import import import import java.io.BufferedReader; java.io.BufferedWriter; java.io.FileReader; java.io.FileWriter; java.io.IOException; java.util.ArrayList; javax.swing.JOptionPane;

public class Arquivo<E extends Cadastro> { public void escrever(E obj){ try{ // ************** tem de alterar o caminho do arquivo FileWriter fw = new FileWriter("C:\\Users\\arley\\Desktop\\"+obj.fil e(), true); BufferedWriter escritor = new BufferedWriter(fw); escritor.write( obj.toString() ); escritor.newLine(); escritor.close(); fw.close(); } catch(IOException e){ JOptionPane.showMessageDialog(null,"Problemas ao escrever no arquivo ."); } } public ArrayList<Cadastro> ler(String nomeArquivo, String tipo){ ArrayList<Cadastro> lista = new ArrayList<Cadastro>(); try{

// ************** tem de alterar o caminho do arquivo FileReader fr = new FileReader("C:\\Users\\arley\\Desktop\\"+nomeArq uivo); BufferedReader leitor = new BufferedReader(fr); String linha, vet[]; do{ linha = leitor.readLine(); if( linha != null ){ try{ vet = linha.split(";"); if( tipo.equals("Cliente")) lista.add( new Cliente( Integer.parseInt(vet[0]),vet [1] ) ); else lista.add( new Produto( Integer.parseInt(vet[0]),vet [1] ) ); } catch(Exception e){} } }while( linha != null ); leitor.close(); fr.close(); } catch(Exception e){} return lista; } public void imprimir(ArrayList<E> lista){ for( int i = 0; i < lista.size(); i++ ) System.out.println( lista.get(i) ); } } // ***************************************************** package aula; import java.util.ArrayList; import javax.swing.JOptionPane; public class Principal { private static ArrayList<Cadastro> clientes = new ArrayList<Cadastro>(); private static ArrayList<Cadastro> produtos = new ArrayList<Cadastro>(); private static Arquivo<Cadastro> arquivo = new Arquivo<Cadastro>(); public static void main(String[] args) { clientes = arquivo.ler("cliente.txt", "Cliente"); produtos = arquivo.ler("produto.txt", "Produto"); String entrada; int opcao; do{ try{ entrada = JOptionPane.showInputDialog( "1 - Cadastrar produto\n" + "2 - Cadastrar cliente\n" + "3 - Imprimir\n" + "4 - Sair"); opcao = Integer.parseInt(entrada); switch( opcao ){ case 1: cadastraProduto(); break;

case 2: cadastraCliente(); break; case 3: arquivo.imprimir(clientes); arquivo.imprimir(produtos); break; case 4: System.exit(0); } } catch(Exception e){} }while( true ); } private static void cadastraProduto(){ try{ String nome = JOptionPane.showInputDialog("Nome:"); Produto produto = new Produto(5,nome); //Arquivo<Cadastro> arquivo = new Arquivo<Cadastro>(); arquivo.escrever(produto); } catch(Exception e){ JOptionPane.showMessageDialog(null, "No foi possvel efetuar este cadas tro."); } } private static void cadastraCliente(){ try{ String nome = JOptionPane.showInputDialog("Nome:"); Cliente cliente = new Cliente(9,nome); //Arquivo<Cadastro> arquivo = new Arquivo<Cadastro>(); arquivo.escrever(cliente); } catch(Exception e){ JOptionPane.showMessageDialog(null, "No foi possvel efetuar este cadas tro."); } } }

Você também pode gostar