Desfazer e Refazer açoes com imagens - probleminha bobo

1 resposta
Evy
olá... o meu programa oferece ao usuario a opcao de tratamento de imagens... cada vez que ele efetua uma alteracao na imagem, essa alteracao e armazenada em um arraylist. Tenho as funcoes de refazer e desfazer Refazer:
posicao_foto++;
                jPanel3.setImage(foto.get(posicao_foto), 0, 0);
Desfazer:
posicao_foto--;
                jPanel3.setImage(foto.get(posicao_foto), 0, 0);
ate ai tudo bem... se ele ficar so nessa, funciona... mas se ele desfizer uma acao e fizer outra, essa acao tem que ser armazenada no vetor, descartando todas as que estao salvas dpois daquele ponto do vetor(ponto que foi setado no desfazer) a funcao que eu utilizo para isso é a seguinte:
//posicao_foto é o ponto que foi setado no desfazer e foto é o meu vetor de imagens
        
        if(posicao_foto<foto.size())
        {
            
            for (int conta_vetor=foto.size();conta_vetor>posicao_foto;conta_vetor--){
                foto.remove(foto.get(conta_vetor));
                System.out.println("Posicao_foto: "+posicao_foto);
                System.out.println("Conta vetor: "+conta_vetor);
                 System.out.println("tamanho do problema: "+foto.size());
            }
                
        }
            foto.add(jPanel3.getImage());
            posicao_foto++;

    }

Tenho os seguintes problemas:
==>a primeira vez que adiciona no vetor, ele adiciona duas vezes
==> na primeira vez que eu clico em desfazer, ela nao funciona. tenho que clicar novamente para ela funcionar...
==> Se eu fizer uma acao diferente depois do desfazer e colocar para desfazer, ele nao seta a imagem anterior a essa nova acao (ou nao armazenei direito), sei que eu perco essa imagem e o que mostra eh a imagem anterior a que deveria ser mostrada...
Deu pra entender???
alguem viu o que eu to fazendo de errado?

1 Resposta

marcoantoniorocha

O que você precisa é de uma pilha, dê uma olhada na classe Stack

Criado 11 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 1
Participantes 2