Interface graficas - tratamento de eventos AJUDA

2 respostas
joaoalves89
Boa tarde Pessoal! Eu tenho 1 trabalho para a faculdade na qual tou a ter alguns problemas no tratamento de eventos. Eu inicialmente tenho uma pilha de cartoes da qual tira um cartao e coloco a imagem desse cartao num label com o nome "labelCartaoVirado". Depois tenho mais 3 Labels, em que cada um faz de Pilha para possiveis sequencias de cartoes. E tenho mais 3 labels que vao ser para as chamadas pilhas auxiliares. Ao utilizador é possivel pegar no cartao que esta na labelCartao virado e adicionar a qualquer uma das labels, ou das sequencias, ou das pilhas auxiliares. Ao utilizador é possivel tambem pegar num cartao duma das labels das pilhas auxiliares e adicionar a uma das labels das pilhas das sequencias. Eu tenho uma class: private class TrataEventoRato extends MouseAdapter{ O codigo vai em baixo, mas nao ser muito vou colocar so o mousePressed da labelVirarCartao e o mouseReleased duma das sequencias:
public void mousePressed(MouseEvent e){

        if(e.getSource()==labelCartaoVirado){
            carregouNoCartao = true;
            cartao = pilhaCartoes.virarCartaoMontePrincipal();
           
            labelSequencia1.addMouseListener(ratoHanderEvent);
            labelSequencia2.addMouseListener(ratoHanderEvent);
            labelSequencia3.addMouseListener(ratoHanderEvent);
           labelSequenciaAuxiliar1.addMouseListener(ratoHanderEvent);
            labelSequenciaAuxiliar2.addMouseListener(ratoHanderEvent);
            labelSequenciaAuxiliar3.addMouseListener(ratoHanderEvent);
       //     labelCartaoVirado.removeMouseListener(ratoHanderEvent);


            }
        }

        public void mouseReleased(MouseEvent e){

        
            if(e.getSource()==labelSequencia1){

                if(carregouNoCartao==true){                    
                boolean result = sequencia1.adicionarCartao(cartao);
                if(result==true){
                    
                    labelSequencia1.setIcon(retornaImageIcon(retornaImformaçaoCartao(sequencia1.retornarCartaoTopo())));
                    pilhaCartoes.removerCartaoPilhaPrincipal();
                    limparLabelCartaoVirado();                    
                    alterarNumeroJogadas();
                   
                   }
         //    labelCartaoVirado.addMouseListener(ratoHanderEvent);
             labelSequencia1.removeMouseListener(ratoHanderEvent);
            labelSequencia2.removeMouseListener(ratoHanderEvent);
            labelSequencia3.removeMouseListener(ratoHanderEvent);
            labelSequenciaAuxiliar1.removeMouseListener(ratoHanderEvent);
             labelSequenciaAuxiliar2.removeMouseListener(ratoHanderEvent);
              labelSequenciaAuxiliar3.removeMouseListener(ratoHanderEvent);
              
               carregouNoCartao=false;
                }
                
            }
Ate aqui tudo bem, ele faz as coisas direitas e adiciona tudo direito. No entanto quando tentei adicionar mousePressed ás labels das pilhas auxiliares e adicionei mouseReleased as pilhas das sequencias, ele simplesmente nao faz as coisas direitas. Não sei se é algum conflito entre eventos, por isso precisava da vossa ajuda. Por exemplo se existe alguma maneira de eu saber qual foi o tipo de evento que aconteceu em determinada label(se mousePressed ou mouseReleased). Outra coisa que tambem achei estranha, foi que, supostamente o mousePressed é quando pressiono o botao do rato num componente e o mouseReleased quando o liberto sobre outro componente. No entanto, eu faço mouseDown na labelvirarCartao e arrasto o rato para cima de uma das labels das sequencias e nada acontece. Mas quando clico na labelVirarCartao uma vez e depois clico numa das labels, ele ja faz as coisas direito. Estranho.

Desculpem esta duvida tao grande, mas ja ando a mais de um dia a tentar colocar isto a funcionar e ou funciona uma parte ou funciona a outra

2 Respostas

Andre_Rosa

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/3

Elizeu_Santos

cara tambem nãos ei nada de listeners, e na faculdade ninguem sabe tod mundo corre pro netbeans quando se trata de swing.
bem que o Vinny poderia auxiliar com isso. fiquei sabendo que ele é fera em swing. vou tentar entrar em contato com ele.

Criado 28 de maio de 2011
Ultima resposta 28 de mai. de 2011
Respostas 2
Participantes 3