Manipular listas com JavaBeans

6 respostas
K

boa noite pessoal td bem?

to com um problema aqui ve se vcs podem me ajudar.

estou fazendo um programinha para cadastrar uma lista de equipamentos e adicionar esses equipamentos em um departamento e gravar no arquivo .txt o departamento com os ids do equipamento, so que ele grava somente o ultimo id.

alguem pode dar um help

ai vai as classes.

Teste

package com.kubin.teste;

import java.util.ArrayList;
import java.util.List;

import com.kubin.*;
import com.kubin.modelo.Departamento;
import com.kubin.modelo.Equipamento;
import com.kubin.negocios.CadastroDepartamento;

public class Teste {
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		
		CadastroDepartamento cd = new CadastroDepartamento();
		
		Equipamento equip = new Equipamento();
		equip.setNome("Celular");
		equip.setId(1);
		equip.setConfiguracao("RADIO FM - MP3");
		
		Equipamento equip1 = new Equipamento();
		equip.setNome("PC");
		equip.setId(2);
		equip.setConfiguracao("1GB - GForce GTX - AM2");
		
		List<Equipamento> lista = new ArrayList<Equipamento>();
		lista.add(equip);
		lista.add(equip1);
		
		//------------------------------------------------------------//
		
		Departamento depto = new Departamento();
		depto.setId(1);
		depto.setNome("OffShore");
		depto.setEquipamento(lista);

		
		cd.addDepartamento(depto);
	}

}

CadastroDepartamento

package com.kubin.negocios;

import java.io.Serializable;

import com.kubin.crud.DepartamentoCRUD;
import com.kubin.modelo.Departamento;

public class CadastroDepartamento implements Serializable {

	private static final long serialVersionUID = 1L;
	
	public void addDepartamento(Departamento depto){
		
		DepartamentoCRUD dc = new DepartamentoCRUD();
		dc.addDepartamento(depto);
	
	}
	

}

DepartamentoCRUD

package com.kubin.crud;

import com.kubin.modelo.*;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Serializable;

public class DepartamentoCRUD implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@SuppressWarnings("unused")
	public void addDepartamento(Departamento departamento){
		
		File file = new File("C:/workspace/Simulado/Departamento.txt");
	
	try {
			FileWriter fw = new FileWriter(file, true);
			BufferedWriter bw = new BufferedWriter(fw);
		for(Equipamento equip : departamento.getEquipamento()){
			
			String escreve = Integer.toString(departamento.getId()) +
								departamento.getNome() +
								equip.getId();
								
			bw.newLine();
			bw.write(escreve);
			bw.flush();
			fw.close();					
			
		}
			
	} catch (IOException e)  {System.err.println("Não foi possivel escrever no arquivo");}
		
	}
	
	@SuppressWarnings("unused")
	public void showDepartamento(Departamento departamento){
		
		File file = new File("C:/workspace/Simulado/Departamento.txt");
		
		try {
			
			FileReader fw = new FileReader(file);
			BufferedReader bw = new BufferedReader(fw);
			
			String s = bw.readLine();
			while(s != null){
				
				departamento.getId();
				departamento.getNome();
				departamento.getEquipamento();
				
			}
			
		}catch(IOException e){
			System.err.println("Erro");
		}
		
	}
	
	

}


obrigado

6 Respostas

K

alguem manja de list ae?
tenta da uma força p-ls

B

Já tentou modificar o equipamento certo?

K

não seria modificar o equipamento, veja na classe de teste que estou criando 2 equipamentos e adicionando eles na lista.

logo apos adiciono essa lista no equipamento, ao gravar o departamento no arquivo .txt

ele escreve

1 Offshore 2

sendo que tenho 2 ids de 2 equips e ele esta adicionando somente um, aqui q esta o problema.

B

Você está criando dois equipamentos mas está mudando o mesmo duas vezes.

K

não cara, eu acho rs, são dois objetos diferentes

equip,
equip1

e ai eu faco lista.add(equip) e lista.add(equip1)

K

ahhhhh Bruno agora eu entendi

nos dois eu estava dando

equip.setNome(“aaa”);

ai no outro objeto eu alterei o mesmo equip.

entendi.

vlw cara

Muito obrigado.
:lol:

Criado 7 de junho de 2009
Ultima resposta 8 de jun. de 2009
Respostas 6
Participantes 2