Itens dinamicos[RESOLVIDO]

Ate funcionou so a selecao que ficou fixa naum consigou desmarcar um item…

no casso adicionei todos os componentes ja selecionados mas naum consigou desmarcar-los…

Olha eu te passei essa classe, mas eu tenho uma personalizada que tive que alterar pra ficar do jeito que eu queria… só vc mudar e adaptar pra vc…

Vc de alguma maneira vai ter que passar o limite do seu Array para o For não bugar sendo infinito…
Depois q vc arrumou bonitinho vc tem que passar esses eventos para seu JFrame…
O codigo ta la embaixo…

[code]/**

  • @description Classe que faz com que a lista de computadores recebam
  •          também o componente checkbox para o usuário poder selecionar.
    

*/

package negocio.apresentacao;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JList;
import javax.swing.JCheckBox;
import negocio.clsCSV;

/*

  • Eventos da classe (métodos)
  • @clicaLista //o usuario clica na lista e o checkbox recebe valor ou nao
  • @preencherComputadores //preenche a lista
  • @limitePC //verifica olimite de dados que a lista ira ter
  • @selecionarComputadores //seleciona todos computadores
  • @deselecionarComputadores //deselciona todos computadores
  • @pegaItemLista //pega o nome da seleção
    */

/**

  • @data 29/11/2012

  • @author Charleston Anjos

  • @version 12.101

  • @alteração 29/11/2012
    */
    public class clsJList implements interfaces.interfaceJList {

    clsCSV csv = new clsCSV();
    private int total_linha = 0; //VARIAVEL PRINCIPAL (para saber o limite do for)

    public clsJList(){

     //pega o total de linhas que existem no registro csv
     try {
         total_linha = csv.TotalLinha();            
     } catch (Exception ex) {
         Logger.getLogger(clsJList.class.getName()).log(Level.SEVERE, null, ex);
     }
    

    }

    public void ClicaLista(JList jLista,java.awt.event.MouseEvent evt){
    int index = jLista.locationToIndex(evt.getPoint());

     if(index != -1){
       JCheckBox checkbox = (JCheckBox) jLista.getModel().getElementAt(index);
       checkbox.setSelected(!checkbox.isSelected());
       jLista.repaint();
     }
    

    }

    public void PreencheLista(JList jLista){
    try{

         //Permite que a lista possa conter CheckBox
         jLista.setCellRenderer(new clsCheckBoxCellRenderer());
    
         //objeto que vai guardar os valores da lista
         Object[] cbArray = new Object[3];
         
         //faz um looping até o final
         //obs: a linha 0 é o nome da coluna
        for(int i=0;i<total_linha;i++){               
            cbArray[i] = new JCheckBox("1");
        }
         
    
         //preenche com os dados da tabela
         jLista.setListData(cbArray);
         
     }catch(Exception e){
         e.printStackTrace();
     }        
    

    }

    public void SelecionarTodos(JList jLista){
    for(int i=0;i<total_linha;i++){

         int index = i;
    
         if(index != -1){
             JCheckBox checkbox = (JCheckBox) jLista.getModel().getElementAt(index);
             checkbox.setSelected(true);
             jLista.repaint();
         }
     }
    

    }

    public void DeselecionarTodos(JList jLista){
    for(int i=0;i<total_linha;i++){

         int index = i;
    
         if(index != -1){
           JCheckBox checkbox = (JCheckBox) jLista.getModel().getElementAt(index);
           checkbox.setSelected(false);
           jLista.repaint();
         }
     }
    

    }

    public String PegaItemLista(JList jLista){

     String item = null;
    
     try {
    
             /*
              * faz um busca em todos os checkbox da lista
              * para verificar quais estão selecionados
              * e retornando o texto do checkbox
              */
    
             //verifica em toda lista
             for(int i=0;i<total_linha;i++){
    
                 //pega o indice pela contagem do for
                 int index = i;
    
                 if(index != -1){
    
                   //pega o checkbox da lista para fazer a comparação
                   JCheckBox checkbox = (JCheckBox) jLista.getModel().getElementAt(index);
    
                   //verifica se o checkbox da lista foi selecionado
                   if (checkbox.isSelected()==true){
                       item = checkbox.getText();
                   }
                 }
             }
    
         } catch (Exception ex) {
            ex.printStackTrace();
         }
      return item;
    

    }

}
[/code]

Passando eventos para a Lista do seu Jframe

[code]
clsJList lista = new clsJList(); //objeto da classe

/** Creates new form jfMensagem */
public jfFrame() {
initComponents();

    lista.PreencheLista(nome_da_sua_lista);
}[/code]

[code]
private void jListaPCMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
lista.ClicaLista(jListaPC, evt);
}

private void jcbSelecaoTodosActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(jcbSelecaoTodos.isSelected())lista.SelecionarTodos(jListaPC);
else lista.DeselecionarTodos(jListaPC);
} [/code]

Entao consegui resolver colocando um evento de mouselistener e programando no metodo do mouse click fazendo a logica para trocar a seleção do componente muito obrigado pela sua ajuda amigo valeu mesmo…

Se precisar “Tamo Aí”…

=]