Swing usando 2 JLIST

2 respostas
W

BOM DIA!
estou fazendo o projeto final da facul...
e nao consigo fazer essa parte funcionar..se alguem pode ajudar agradeço...
a intenção era criar cadastrar as materias que o professor pode lecionar...
sendo que a primeira jlist monstra as materias que estao no banco e quando se seleciona um clica no jbuton um evento retira da primeira jlist e add na de ematerias selecionadas..
mais so funciona na primeira seleção , qd tento selecionar mais de uma , nao vai...

NA CLASSE DE VIEW TENHO
PRIVATE void jbtndeselecionaDisciplinaActionPerformed(java.awt.event.ActionEvent evt) { 
     int id=disciplinas.get(jListMaterias.getSelectedIndex()).getIdDisciplinas();
         
       if(disciplinasSelecionadas.isEmpty()){
       this.disciplinasSelecionadas=controler.carregaDisciplinasSelecionadas1Jlist
               (jListMateriasSelecionadas,jListMaterias,id);
  
       }else{
       this.disciplinasSelecionadas=controler.carregaDisciplinasSelecionadasJlist
               (jListMateriasSelecionadas,jListMaterias,id);
    
       }

public void setControler(DisciplinasControle dcv) {
        this.controler = dcv;
        this.disciplinas = dcv.carregaDisciplinasJlist(jListMaterias);
       
      }
NO CONTROLE TENHO:
public List<Disciplina> carregaDisciplinasSelecionadas1Jlist(JList listDisciplinasSelecionadas,
                     JList listDisciplinas, int id) {
            ListModel JlistModel = listDisciplinasSelecionadas.getModel();
            ListModel jListModel2= listDisciplinas.getModel();
            
            DisciplinaPersist dp = new DisciplinaPersist(conexao);
            ArrayList<Disciplina> disciplinasNomeArraySelecionas = dp.getNomeDisciplina();
            
            
            List nomes = new ArrayList();
            List nomeRemove=new ArrayList();

            for (Disciplina disciplina : disciplinasNomeArraySelecionas) {
               if(disciplina.getIdDisciplinas()==id){
                nomes.add(disciplina.getNome());
               }
                else{
               nomeRemove.add(disciplina.getNome());
               }
            
            }
            disciplinasNomeArraySelecionas.clear();
            disciplinasNomeArraySelecionas.addAll(nomes);
            listDisciplinasSelecionadas.setListData(nomes.toArray()); 
            listDisciplinas.setListData(nomeRemove.toArray());
            return disciplinasNomeArraySelecionas;
    }
      
          public List<Disciplina> carregaDisciplinasSelecionadasJlist(JList listDisciplinasSelecionadas
                  ,JList listDisciplina,int id) {
            ListModel JlistModel = listDisciplinasSelecionadas.getModel();
            ListModel JlistModel2 = listDisciplina.getModel();
            
            List exist=new ArrayList<Disciplina>();
            List selecionada=new ArrayList<Disciplina>();
            
           // exist.add(listDisciplina.getSelectedValuesList());
            for(int i =0;i<=listDisciplina.countComponents();i++){
            exist.add(listDisciplina.getComponent(i));            
            }
            
            
            for(int i =0;i<=listDisciplinasSelecionadas.countComponents();i++){
            selecionada.add(listDisciplinasSelecionadas.getComponent(i));            
            }
            
       
            
            DisciplinaPersist dp = new DisciplinaPersist(conexao);
            ArrayList<Disciplina> disciplinasNomeArraySelecionas = dp.getNomeDisciplina();
            
            disciplinasNomeArraySelecionas.remove(selecionada);
            List nomes = new ArrayList();
            List nomeRemove=new ArrayList();
            

            for (Disciplina disciplina : disciplinasNomeArraySelecionas) {
               if(disciplina.getIdDisciplinas()==id){
                nomes.add(disciplina.getNome());
               }
              
            }
            
            nomes.addAll(selecionada);
            nomeRemove.removeAll(nomes);
            
            listDisciplinasSelecionadas.setListData(nomes.toArray()); 
            listDisciplina.setListData(nomeRemove.toArray());
            return nomes;
    }
E NO PERSIST
public ArrayList <Disciplina> getNomeDisciplina(){
        ArrayList <Disciplina> disciplinas = new ArrayList<Disciplina>();
        try{
            Statement st = conexao.createStatement();
            String sql = "select * from ProjetoFinal.dbo.Disciplinas";

            ResultSet rs = st.executeQuery(sql);

            while( rs.next() ){
                Disciplina disciplina = new Disciplina (
                                rs.getInt("IdDisciplinas"),
                                rs.getString("Nome"),
                                rs.getInt("CargaHoraria"),
                                rs.getString("Ementa")
                                );
                disciplinas.add(disciplina);
            }
        } catch (Exception e){

        }

        return disciplinas;
    }

2 Respostas

manhanijava

amigao edita primeiro seu post com a tag code, pra galera poder ver melhor seu código…

W

TAG CODE ADICIONADA

Criado 29 de julho de 2012
Ultima resposta 29 de jul. de 2012
Respostas 2
Participantes 2