Ir para o conteúdo
caxinaswin

Problema com classes leitura de ficheiro

Mensagens Recomendadas

caxinaswin

tenho 3 classes que estão interligadas(FamiliaEquipamento,Equipamento,Etiqueta) 1 familia tem um arrayList de Equipamento e 1 Equipamento tem 1 Etiqueta sendo assim eu tenho uma janela que me guarda o nome da familia num ficheiro á parte e depois tenho outro ficheiro que me guarda o seguinte

Projetor==xxx==0001==Activo

Projetor==yyy==0002==inactivo

Pc==ccc==0003==Activo

Pc==qqqq==0004==inactivo

guarda a familia o equipamento o numero da etiqueta e o estado da etiqueta respetivamente(usei nomes rápidos para os equipamentos para testes)

o que pretendo fazer é carregar a informação para os ArrayList

Já consegui carregar a informação para o ArrayList familias mas não tou a conseguir carregar toda esta informação para as classes correspondentes o que fiz foi isto:

public static void CarregarEtiquetasEquipamento()
{

File inputFile = new File("Equipamentos.txt");
Scanner in = null;
try {
in = new Scanner(inputFile);
while(in.hasNextLine())
{
String linha = in.nextLine();
String [] campos = linha.split("==");
boolean estado = false;
if(campos[3].equals("Activo"))
{
estado = true;
}
else
{
estado = false;
}
for(FamiliaEquipamento familia: familias)
{
if(familia.getFamilia().equals(campos[0]))
{
familia.getEquipamentos().add(new Equipamento(campos[1]));
}
for(Equipamento equipamento:familia.getEquipamentos())
{
equipamento.setEtiqueta(new Etiqueta(Integer.parseInt(campos[2]),estado));
}
}

}




/// CLASSES//



public class FamiliaEquipamento {

private String Familia;
ArrayList<Equipamento> equipamentos = new ArrayList<Equipamento>();
public FamiliaEquipamento(String familia,
ArrayList<Equipamento> equipamentos) {
super();
Familia = familia;
this.equipamentos = equipamentos;
}


public FamiliaEquipamento(String familia) {
super();
Familia = familia;
}


public String getFamilia() {
return Familia;
}
public void setFamilia(String familia) {
Familia = familia;
}
public ArrayList<Equipamento> getEquipamentos() {
return equipamentos;
}
public void setEquipamentos(ArrayList<Equipamento> equipamentos) {
this.equipamentos = equipamentos;
}


}




public class Equipamento {

private String nomeEquipamento;
private Etiqueta etiqueta;
private FamiliaEquipamento familia;



public Equipamento(String nomeEquipamento, Etiqueta etiqueta) {
super();
this.nomeEquipamento = nomeEquipamento;
this.etiqueta = etiqueta;
}

public FamiliaEquipamento getFamilia() {
return familia;
}

public void setFamilia(FamiliaEquipamento familia) {
this.familia = familia;
}

public Etiqueta getEtiqueta() {
return etiqueta;
}

public void setEtiqueta(Etiqueta etiqueta) {
this.etiqueta = etiqueta;
}

public Equipamento(String nomeEquipamento)
{
this.nomeEquipamento = nomeEquipamento;
}



public Equipamento()
{

}

public String getNomeEquipamento() {
return nomeEquipamento;
}

public void setNomeEquipamento(String nomeEquipamento) {
this.nomeEquipamento = nomeEquipamento;
}





public class Etiqueta {

private int numEtiqueta;
private boolean estado;
public Etiqueta(int numEtiqueta,boolean estado)
{
this.numEtiqueta = numEtiqueta;
this.estado = estado;
}
public Etiqueta()
{

}

public Etiqueta(int numEtiqueta) {
super();
this.numEtiqueta = numEtiqueta;
}
public int getNumEtiqueta() {
return numEtiqueta;
}
public void setNumEtiqueta(int numEtiqueta) {
this.numEtiqueta = numEtiqueta;
}

public boolean isEstado() {
return estado;
}
public void setEstado(boolean estado) {
this.estado = estado;
}




}

Editado por apocsantos
tag code + geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
siul72

Acho que o problema é aqui:

{

familia.getEquipamentos().add(new Equipamento(campos[1]));

}

for(Equipamento equipamento:familia.getEquipamentos())

{

equipamento.setEtiqueta(new Etiqueta(Integer.parseInt(campos[2]),estado));

}

O que pretendes provavelmente é:

Equipamento myEquipamento = new Equipamento(campos[1]);

myEquipamento.setEtiqueta(new Etiqueta(Integer.parseInt(campos[2]),estado));

familia.getEquipamentos().add(myEquipamento);

....

Cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.