Ajuda para inserir itens do arraylist na tela[Resolvido]

ah fiz o que tu disseste e deu certinho sabe a exibição o problema é que isso é exibido um monteeeeee de vezes no console.Em anexo to colocando os itens que foram exibidos pelo console e ah o codigo ficou assim

[code]…
while (resultado.next())
{
String disciplina = resultado.getString(1);//exemplo
ArrayList listaModulos = mapaDisciplina.get(disciplina);

								//verifica se ja existe disciplina, se n devemos criar  
								if (listaModulos == null) {  
								    //cria a lista de modulos  
								    listaModulos = new ArrayList<Integer>();  
								    //adiciona a chave  
								    listaDisciplinas.add(disciplina);  
								    //adiciona a lista no mapa  
								    mapaDisciplina.put(disciplina, listaModulos);  
								    
								}  
								int numeroDoModulo = resultado.getInt(2);//exemplo  
								if (numeroDoModulo > listaModulos.size()) { //<<<  
							       int moduloAnterior = numeroDoModulo;  
							        listaModulos.add(numeroDoModulo);  
							        String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);  
							        System.out.println("Adicionou:<" + disciplina + "><" + numeroDoModulo + ">");  
							        ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[0]);  
							        //Converter para array    
							        Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);  
							        System.out.println("Lista de modulos agora:<" + Arrays.toString(arrayDeModulos) + ">");  
							    }//<<< 
							}
			....[/code]

obrigada pela ajuda

olha so dei uma alterada no codigo e consegui inserir alguns modulos na tela mas so da 1 disciplina como eu faço para inserir os modulos das demais?
em anexo segue um print desta tela.
O codigo é o seguinte:

[code]for(int i=0;i<itensTela.length;i++)
for(int j=0;j<itensTela[i].length;j++)
{
try{ int x = 0,y = 0;
resultado = comando.executeQuery(“select max(modulo) from disc_modulo “);
while (resultado.next())
{
maior=resultado.getObject(1).toString();
}
if(maior!=null)
{
quantidade=Integer.parseInt(maior);
}
/repete 10 as disciplinas e os modulos repetem um monte de vzs entre os < e>/
resultado = comando.executeQuery(“select Id_disciplina,modulo from disc_modulo where ensino=’”+1+”’”);//order by Id_disciplina
while (resultado.next())
{
String disciplina = resultado.getString(1);//exemplo
ArrayList listaModulos = mapaDisciplina.get(disciplina);

								//verifica se ja existe disciplina, se n devemos criar  
								if (listaModulos == null) {  
								    //cria a lista de modulos  
								    listaModulos = new ArrayList<Integer>();  
								    //adiciona a chave  
								    listaDisciplinas.add(disciplina);  
								    //adiciona a lista no mapa  
								    mapaDisciplina.put(disciplina, listaModulos);  
								    
								}  
								int numeroDoModulo = resultado.getInt(2);//exemplo  
								if (numeroDoModulo > listaModulos.size()) { //<<<  
							       int moduloAnterior = numeroDoModulo;  
							        listaModulos.add(numeroDoModulo);  
							        String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);  
							        System.out.println("Adicionou:<" + disciplina + "><" + numeroDoModulo + ">");  
							        ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[0]);  
							        //Converter para array    
							        Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);  
							        System.out.println("Lista de modulos agora:<" + Arrays.toString(arrayDeModulos) + ">");  
							    }//<<< 
							}
					  
							//Converter para array  
							String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);  
							int colunas = arrayDeDisciplinas.length;  
							for (int c = 0; c < colunas; c++) {  
							   // System.out.print("Disciplina("+arrayDeDisciplinas[c]+"):<");  
							    ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[c]);  
							    Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);  
							  //  System.out.println("Lista de modulos agora:<"+Arrays.toString(arrayDeModulos)+">"); 
							}  
						
							  
							ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[0]);   
							Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);  
							  
							
						    int colunas1 = arrayDeDisciplinas.length;  
						    int x1 = 0,y1 = 0;    
						    for (int c = 0; c < colunas1; c++) {  
						      
						        JCheckBox disciplina = new  JCheckBox(arrayDeDisciplinas[c]);  
						        disciplina.setBounds(y1, x1, 150, 25);  
						        getContentPane().add(disciplina);    // getContentPane().repaint();
						        y1 = y1 + 150;  
						       if(c==4 || c==9 || c==14 || c==19)
						       {
						    	    x1 = x1 + 250;
						    	    y1=0;
						       }
						          
						      
						    } 
						    /**pego o valor do maior modulo cadastrado no banco**/
						    String maiorModulo=null;int qntdeModulos=0;
						    resultado = comando.executeQuery("select max(modulo) from disc_modulo ");
							while (resultado.next())
							{ 
								 maiorModulo=resultado.getObject(1).toString();
							}
							if( maiorModulo!=null)
							{
								qntdeModulos=Integer.parseInt(maior);
							}
						    
						    int colunas11 = arrayDeModulos.length;  
						    int x11 = 0,y11 = 60;    
						    for (int c = 0; c < colunas11; c++) {  
						      
						        JCheckBox modulo = new  JCheckBox(""+arrayDeModulos[c]);  
						        modulo.setBounds(x11, y11, 150, 25);  
						       if(c<qntdeModulos)
						        y11+=30;
						       getContentPane().add(modulo);     //getContentPane().repaint();
						      // x11 = x11 + 150; 
						       if(c==6 || c==11 || c==17 || c==23)
						       {
						    	    y11 =30;
						    	    x11=0;
						       }
						          
						      
						    } 
						   
						    getContentPane().repaint();
						}
						catch(Exception excecao)
						{
							excecao.printStackTrace();
						}
					}
		
			
		}   [/code]


olha so eu coloquei for (int c = 0; c < arrayDeModulos.length; c++) System.out.println("o conteudo do vetor de modulos é "+arrayDeModulos[c]+" na pos "+c);
antes do for de adicionar os modulos na tela e descobri que os modulos estão sendo sobreescritos e no final de tudo a lista so tem 6 modulos!!! :shock: como eu resolvo isso?no console ficou assim

Lista de modulos agora:<[1, 2, 3, 4, 5, 6]> o conteudo do vetor de modulos é 1 na pos 0 o conteudo do vetor de modulos é 2 na pos 1 o conteudo do vetor de modulos é 3 na pos 2 o conteudo do vetor de modulos é 4 na pos 3 o conteudo do vetor de modulos é 5 na pos 4 o conteudo do vetor de modulos é 6 na pos 5 o conteudo do vetor de modulos é 1 na pos 0 o conteudo do vetor de modulos é 2 na pos 1 o conteudo do vetor de modulos é 3 na pos 2 o conteudo do vetor de modulos é 4 na pos 3 o conteudo do vetor de modulos é 5 na pos 4 o conteudo do vetor de modulos é 6 na pos 5 (...)
obrigada pela ajuda :slight_smile:

//linha 37 troque por ArrayList<Integer> listaDeModulos = mapaDisciplina.get(disciplina);

//47 a 52 é teste, verifique se esta imprimindo corretamente, se estiver correto remova tudo System.out.println("--------------- :: Array Final :: ---------------"); for (int c = 0; c < colunas; c++) { System.out.print("Disciplina("+arrayDeDisciplinas[c]+"):<"); ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[c]); Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]); System.out.println("Lista de modulos agora:<"+Arrays.toString(arrayDeModulos)+">"); }

//remova linhas 55/56 //insira na linha 86 for (int indice = 0; indice < arrayDeDisciplinas.length; indice++) { ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[indice]);//lista de modulos da disciplina Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);//transforma em array //da linha 88 a 104, tera que mudar a logica para posicionar de forma correta //a cada loop, o array tera todos os modulos de cada disciplina respectivos ao que for imprimido na linha 47 a 52 //insira na linha 105+-, antes do repaint, para fechar o for }

Acredito q o array de modulos n tenha mudado para a disciplina, ou seja imprimiu varias vezes os modulos da mesma disciplina
é o “mapaDisciplina.get(arrayDeDisciplinas[indice]);” q pega a lista de modulos, para mudar a disciplina, precisa mudar o indice
no caso “listaDeModulos.toArray(new Integer[0]);” é sempre ‘0’ pois está sendo “transformado” em array, acredito q isso crie um espaço na memoria para alocar os elementos da lista, portanto se o valor for maior q do tamanho da lista, irá criar um array com tamanho diferente e com os indices restantes preenchidos com “null”

oii ChronosSage
no momento o codigo esta assim:

[code] Integer[] arrayDeModulos = null;

							resultado = comando.executeQuery("select Id_disciplina,modulo from disc_modulo where ensino='"+1+"'");//order by Id_disciplina
							while (resultado.next())
							{ 
								String disciplina = resultado.getString(1);//exemplo  
								ArrayList<Integer> listaModulos = mapaDisciplina.get(disciplina);  
								  
								//verifica se ja existe disciplina, se n devemos criar  
								if (listaModulos == null) {  
								    //cria a lista de modulos  
								    listaModulos = new ArrayList<Integer>();  
								    //adiciona a chave  
								    listaDisciplinas.add(disciplina);  
								    //adiciona a lista no mapa  
								    mapaDisciplina.put(disciplina, listaModulos);  
								    
								}  
								int numeroDoModulo = resultado.getInt(2);//exemplo  
								 listaModulos.add(numeroDoModulo); 
								if (! listaModulos.contains(numeroDoModulo) ) {  
							       int moduloAnterior = numeroDoModulo;  
							        listaModulos.add(numeroDoModulo);  
							        String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);  
							        System.out.println("Adicionou:<" + disciplina + "><" + numeroDoModulo + ">");  
							        ArrayList<Integer> listaDeModulos = mapaDisciplina.get(disciplina);    
							        //Converter para array  
							       arrayDeModulos = listaDeModulos.toArray(new Integer[0]);  
							        System.out.println("Lista de modulos agora:<" + Arrays.toString(arrayDeModulos) + ">");  
							  
								}//<<< 
							}
					  
							//Converter para array  
							String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);  
							int colunas = arrayDeDisciplinas.length;  
							System.out.println("--------------- :: Array Final :: ---------------");  
							for (int c = 0; c < colunas; c++) {      
							    System.out.print("Disciplina("+arrayDeDisciplinas[c]+"):<");      
							    ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[c]);      
							    arrayDeModulos = listaDeModulos.toArray(new Integer[0]);      
							    System.out.println("Lista de modulos agora:<"+Arrays.toString(arrayDeModulos)+">");     
							}    						
							  
							
						    int colunas1 = arrayDeDisciplinas.length;  
						    int x1 = 0,y1 = 0;    
						    for (int c = 0; c < colunas1; c++) {  
						      
						        JCheckBox disciplina = new  JCheckBox(arrayDeDisciplinas[c]);  
						        disciplina.setBounds(y1, x1, 150, 25);  
						        getContentPane().add(disciplina);    // getContentPane().repaint();
						        y1 = y1 + 150;  
						       if(c==4 || c==9 || c==14 || c==19)
						       {
						    	    x1 = x1 + 250;
						    	    y1=0;
						       }
						          
						      
						    } 
						   
							for (int indice = 0; indice < arrayDeDisciplinas.length; indice++) {  
							    ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[indice]);//lista de modulos da disciplina  
							     arrayDeModulos = listaDeModulos.toArray(new Integer[0]);//transforma em array  
							    //da linha 88 a 104, tera que mudar a logica para posicionar de forma correta  
							    //a cada loop, o array tera todos os modulos de cada disciplina respectivos ao que for imprimido na linha 47 a 52  
							//insira na linha 105+-, antes do repaint, para fechar o for  
							}  
						    int colunas11 = arrayDeModulos.length;  
						    int x11 = 0,y11 = 30;    
						    for (int c = 0; c < colunas11; c++) {  
						      
						        JCheckBox modulo = new  JCheckBox(""+arrayDeModulos[c]);  
						        modulo.setBounds(x11, y11, 150, 25);  
						        y11+=30;
						       getContentPane().add(modulo);     //getContentPane().repaint();						       
						       // x11 = x11 + 150; 
						       if(c==6 || c==11 || c==17 || c==23)
						       {
						    	    y11 =30;
						    	    x11=0;
						       }
						          
						      
						    } 
						   
						    getContentPane().repaint();[/code]

muito obrigada pela tua ajuda e explicações!
segue em anexo um print da tela agora eu so vou editar para que os modulos fiquem embaixo da disciplina correta pq agora as disciplinas estão aparecendo na tela :slight_smile:


bah acho que eu fiz algo errado pois so estão aparecendo os modulos 1,2,3 varias vezes :shock:
eu to mandando em anexo o conteudo do console,um print da tela(ainda to arrumando a disposição dos elementos) e minha classe.
Muito obrigada por tua ajuda e por tudo que tens me ensinado!


[code]import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;

public class TelaDeEscolhaModulos extends JInternalFrame implements ActionListener {

private static final long serialVersionUID = 1L;
Connection conexao;
Statement comando;
ResultSet resultado;
String disciplinas[];
String modulos[];
Container tela;
//String nome, List de modulos se int use Integer, se String use String
HashMap<String, ArrayList<Integer>> mapaDisciplina = new HashMap<String, ArrayList<Integer>>();
//chaves do mapa
ArrayList<String> listaDisciplinas = new ArrayList<String>();
JButton b, b1, b2;

public TelaDeEscolhaModulos() {

    super("Ensino Medio");
    tela = getContentPane();
    tela.setLayout(null);

    try {
        conexao = conecta.conectabanco();
        comando = conexao.createStatement();
    } catch (Exception x) {
        JOptionPane.showMessageDialog(null, "Erro na conexÄo do banco");
    }

    try {
        resultado = comando.executeQuery("select Id_disciplina,modulo from disc_modulo where ensino='" + 1 + "'");//order by Id_disciplina
        while (resultado.next()) {
            String disciplina = resultado.getString(1);//exemplo
            ArrayList<Integer> listaModulos = mapaDisciplina.get(disciplina);

            //verifica se ja existe disciplina, se n devemos criar
            if (listaModulos == null) {
                //cria a lista de modulos
                listaModulos = new ArrayList<Integer>();
                //adiciona a chave
                listaDisciplinas.add(disciplina);
                //adiciona a lista no mapa
                mapaDisciplina.put(disciplina, listaModulos);

            }
            int numeroDoModulo = resultado.getInt(2);//exemplo

            if (!listaModulos.contains(numeroDoModulo)) {
                listaModulos.add(numeroDoModulo);
            }
        }

        //Converter para array
        String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);
        int colunas = arrayDeDisciplinas.length;
        //Verifica se os modulos foram inseridos corretamente
        System.out.println("--------------- :: Array Final :: ---------------");
        for (int c = 0; c < colunas; c++) {
            ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[c]);
            Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);
            System.out.println("Disciplina(" + arrayDeDisciplinas[c] + ") Lista de modulos :<" + Arrays.toString(arrayDeModulos) + ">");
        }

        int qtdDisciplinas = arrayDeDisciplinas.length;
        int xD = 0, yD = 0;
        for (int c = 0; c < qtdDisciplinas; c++) {
            //Logica de inserçao dos componentes disciplina
            JCheckBox disciplinaJCheckBox = new JCheckBox(arrayDeDisciplinas[c]);
            disciplinaJCheckBox.setBounds(xD, yD, 150, 25);
            getContentPane().add(disciplinaJCheckBox);
            xD = xD + 150;
            if (c % 5 == 4) {//if (c == 4 || c == 9 || c == 14 || c == 19) { //muda linha
                xD = 0;
                yD = yD + 250;
            }


        }

        int xM = 0, yM = 30;
        for (int indice = 0; indice < qtdDisciplinas; indice++) { //para cada disciplina faça
            ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[indice]); //pega a lista de modulos
            Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);//transforma em array
            int qtdDeModulosDaDisciplinaSelecionada = arrayDeModulos.length;//qtdDeModulosDaDisciplinaSelecionada
            //Logica de inserçao dos componentes modulo
            for (int c = 0; c < qtdDeModulosDaDisciplinaSelecionada; c++) {//para cada modulo faça
                JCheckBox modulo = new JCheckBox("" + arrayDeModulos[c]);
                modulo.setBounds(xM, yM, 150, 25);
                yM += 30;
                getContentPane().add(modulo);

            }
            xM = xM + 150;
            yM = 30 + (indice/5)*250;
            
            if (indice % 5 == 4) {//if (c == 6 || c == 11 || c == 17 || c == 23) {//muda linha
                xM = 0;
            }
        }

        getContentPane().repaint();
    } catch (Exception excecao) {
        excecao.printStackTrace();
    }

    setSize(400, 280);
    setVisible(true);
    setClosable(true);
    setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
    setIconifiable(true);
    setMaximizable(true);
    setResizable(true);

}

public static void main(String args) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new TelaDeEscolhaModulos().setVisible(true);
        }
    });
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
}

}[/code]
clicke em “view plain” um botaozinho acima do codigo para facilitar a copia
substitua(n mude nd a n ser a linha 38 onde ta “conexao = conecta.conectabanco();”) e verifique se funciona, n esqueça de fazer uma copia doq vc fez antes de substituir
n tenho bd, entao n posso testar e tambem tem um erro na linha 38 q n sei como resolver

ChronosSage obrigada!!!
agora aparecem os modulos de cada disciplina tela e o console fica assim

--------------- :: Array Final :: --------------- Disciplina(portugues) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(biologia) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(quimica) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(matematica) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(geografia) Lista de modulos :<[1, 2, 3, 4]> Disciplina(educacao fisica) Lista de modulos :<[1]> Disciplina(artes) Lista de modulos :<[1]> Disciplina(historia) Lista de modulos :<[1, 2, 3, 4]> Disciplina(filosofia) Lista de modulos :<[1, 2, 3]> Disciplina(sociologia) Lista de modulos :<[1, 2, 3]> --------------- :: Array Final :: --------------- Disciplina(portugues) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(biologia) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(quimica) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(matematica) Lista de modulos :<[1, 2, 3, 4, 5, 6]> Disciplina(geografia) Lista de modulos :<[1, 2, 3, 4]> Disciplina(educacao fisica) Lista de modulos :<[1]> Disciplina(artes) Lista de modulos :<[1]> Disciplina(historia) Lista de modulos :<[1, 2, 3, 4]> Disciplina(filosofia) Lista de modulos :<[1, 2, 3]> Disciplina(sociologia) Lista de modulos :<[1, 2, 3]>
agora é so arrumar os itens na tela mas dai isso eu consigo fazer por enquanto a tela ta assim conforme o print
muito obrigada pela ajuda :slight_smile:
pela paciencia :slight_smile:
explicacoes:):slight_smile:


mudei o codigo tava com problema, copie dnovo

[code]import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;

public class TelaDeEscolhaModulos extends JInternalFrame implements ActionListener {

private static final long serialVersionUID = 1L;
Connection conexao;
Statement comando;
ResultSet resultado;
String disciplinas[];
String modulos[];
Container tela;
//String nome, List de modulos se int use Integer, se String use String
HashMap<String, ArrayList<Integer>> mapaDisciplina = new HashMap<String, ArrayList<Integer>>();
//chaves do mapa
ArrayList<String> listaDisciplinas = new ArrayList<String>();
JButton b, b1, b2;

public TelaDeEscolhaModulos() {

    super("Ensino Medio");
    tela = getContentPane();
    tela.setLayout(null);

    try {
        conexao = conecta.conectabanco();
        comando = conexao.createStatement();
    } catch (Exception x) {
        JOptionPane.showMessageDialog(null, "Erro na conexÄo do banco");
    }

    try {
        resultado = comando.executeQuery("select Id_disciplina,modulo from disc_modulo where ensino='" + 1 + "'");//order by Id_disciplina
        while (resultado.next()) {
            String disciplina = resultado.getString(1);//exemplo
            ArrayList<Integer> listaModulos = mapaDisciplina.get(disciplina);

            //verifica se ja existe disciplina, se n devemos criar
            if (listaModulos == null) {
                //cria a lista de modulos
                listaModulos = new ArrayList<Integer>();
                //adiciona a chave
                listaDisciplinas.add(disciplina);
                //adiciona a lista no mapa
                mapaDisciplina.put(disciplina, listaModulos);

            }
            int numeroDoModulo = resultado.getInt(2);//exemplo

            if (!listaModulos.contains(numeroDoModulo)) {
                listaModulos.add(numeroDoModulo);
            }
        }

        //Converter para array
        String[] arrayDeDisciplinas = listaDisciplinas.toArray(new String[0]);
        int colunas = arrayDeDisciplinas.length;
        //Verifica se os modulos foram inseridos corretamente
        System.out.println("--------------- :: Array Final :: ---------------");
        for (int c = 0; c < colunas; c++) {
            ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[c]);
            Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);
            System.out.println("Disciplina(" + arrayDeDisciplinas[c] + ") Lista de modulos :<" + Arrays.toString(arrayDeModulos) + ">");
        }

        int qtdDisciplinas = arrayDeDisciplinas.length;
        int xD = 0, yD = 0;
        for (int c = 0; c < qtdDisciplinas; c++) {
            //Logica de inserçao dos componentes disciplina
            JCheckBox disciplinaJCheckBox = new JCheckBox(arrayDeDisciplinas[c]);
            disciplinaJCheckBox.setBounds(xD, yD, 150, 25);
            getContentPane().add(disciplinaJCheckBox);
            xD = xD + 150;
            if (c % 5 == 4) {//if (c == 4 || c == 9 || c == 14 || c == 19) { //muda linha
                xD = 0;
                yD = yD + 250;
            }


        }

        int xM = 0, yM = 30;
        for (int indice = 0; indice < qtdDisciplinas; indice++) { //para cada disciplina faça
            ArrayList<Integer> listaDeModulos = mapaDisciplina.get(arrayDeDisciplinas[indice]); //pega a lista de modulos
            Integer[] arrayDeModulos = listaDeModulos.toArray(new Integer[0]);//transforma em array
            int qtdDeModulosDaDisciplinaSelecionada = arrayDeModulos.length;//qtdDeModulosDaDisciplinaSelecionada
            //Logica de inserçao dos componentes modulo
            for (int c = 0; c < qtdDeModulosDaDisciplinaSelecionada; c++) {//para cada modulo faça
                JCheckBox modulo = new JCheckBox("" + arrayDeModulos[c]);
                modulo.setBounds(xM, yM, 150, 25);
                yM += 30;
                getContentPane().add(modulo);

            }
            xM = xM + 150;
            yM = 30 + (indice/5)*250;
            
            if (indice % 5 == 4) {//if (c == 6 || c == 11 || c == 17 || c == 23) {//muda linha
                xM = 0;
            }
        }

        getContentPane().repaint();
    } catch (Exception excecao) {
        excecao.printStackTrace();
    }

    setSize(400, 280);
    setVisible(true);
    setClosable(true);
    setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
    setIconifiable(true);
    setMaximizable(true);
    setResizable(true);

}

public static void main(String args) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new TelaDeEscolhaModulos().setVisible(true);
        }
    });
}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
}

}[/code]

ChronosSage
muit :lol: obrigadaaaaaaa!!!
a tela esta perfeita!
obrigada de verdade pela ajuda:)
Segue um print desta tela
:lol:
obrigada de verdade por tudo!!!