MouseListener

0 respostas
L

Olá pessoal,

Estou retomando meus estudos em Java em tenho a seguinte situação num programa de questionarios que estou tentando desenvolver:
No meu exemplo abaixo tenho duas condições para um MouseListener, o primeiro IF é para seleção ÚNICA de um JList com checkboxes, funciona sem problemas, seleciona e desmarca, já no ELSE tem a função de selecionar mais de uma opção, porém limitado pela variável qtMULTIPLA conforme código, ele também funciona o número de selecões, porém não desmarca, então só náo estou conseguindo desmarcar as opções neste ELSE que pode selecionar mais de uma opção. Se alguém puder analisar o trecho do código e me ajudar, agradeço.

lista.addMouseListener(new MouseAdapter(){     
            public void mousePressed(MouseEvent e){     
              int index = lista.locationToIndex(e.getPoint());    
             if (LeitorDePerguntas.abrirMultiplas==false) {
               if(index != -1){     
                       
                  boolean tem_marcado = false;     
                  int index_selecionado = 0;     
                       
                  for (int i = 0; i < lista.getModel().getSize() && !tem_marcado; i++) {     
                           
                      JCheckBox checkbox =     
                      (JCheckBox) lista.getModel().getElementAt(i);     
                      tem_marcado = checkbox.isSelected();     
                      index_selecionado = i;       
                  }     
                       
                  if (!tem_marcado || tem_marcado && index_selecionado == index) {     
                      JCheckBox checkbox =     
                           (JCheckBox) lista.getModel().getElementAt(index);     
                      checkbox.setSelected(!checkbox.isSelected());     
                  }     
                     
                repaint();     
              }  
             } else {
            	if(contaMultipla<qtMultipla){
            		
            		index = lista.locationToIndex(e.getPoint());   
            		if(index != -1){JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(index);   
            		   checkbox.setSelected(!checkbox.isSelected());   
            		   repaint();   
            		   contaMultipla++;
            		   System.out.println(contaMultipla);  
            		}    
            	    
            	} 
             }
             
             
             
            }     
          });
Criado 12 de março de 2011
Respostas 0
Participantes 1