Problema com manipulação de instâncias

2 respostas
seudito

Boa tarde pessoal,

Estou fazendo alguns testes com Threads e me surgiu um problema (acredito que seja algum erro relacionado a OO que cometi).

Possuo uma classe que extends JInternalFrame, essa classe não possui nenhuma variável estática. Estou criando um objeto deste tipo, e enquanto insiro dados neste JInternalFrame, aciono uma Thread que cria um novo objeto (deste mesmo tipo) e o add em um ArrayList:

ArrayList<MinhaClasse> list = new ArrayList<MinhaClasse>();
public class MinhaClasse extends JInternalFrame{

//algumas variáveis, campos, imagens etc... 

}
MinhaClasse internalFrame = new MinhaClasse();
list.add(internalFrame);

O problema é o seguinte: enquanto estou alterando os dados referentes ao primeiro internalFrame criado, quando o segundo (que está sendo criado em background) é terminado, as variáveis da primeira instância são zeradas, bem como os campos e demais edições que efetuei.

Como já disse, não estou utilizando variáveis estáticas, e como se tratam de duas instâncias diferentes do objeto MinhaClasse, o que poderia levar a tal tipo de comportamento :?:

2 Respostas

edufera10

coloca o código inteiro ai que fica mais fácil ai eu tento te ajudar, ja levei várias surras de thread :lol:

seudito

Ba tarde Edu...

Consegui contornar o problema bloqueando a thread depois do processamento (criação do JInternalFrame) mas antes de atribuí-lo à variável:

Ex:

MinhaClasse internalFrame = new MinhaClasse();
list.add(internalFrame);
public class MinhaClasse extends JInternalFrame{  
  
//algumas variáveis, campos, imagens etc...   

if(list.size() > 0) 
metodoQueBloqueiaThread();  
}

Aí depois que faço toda a atividade no primeiro painel e fecho, chamo um metodoQueDesbloqueiaThread() e tudo está seguindo normalmente... obrigado pela atenção...

Criado 12 de abril de 2010
Ultima resposta 13 de abr. de 2010
Respostas 2
Participantes 2