Imprimir dados lista

preciso fazer com que a classe produtoview imprima os elemetos do JtextField mas toda vez q clico no botao ao inves de ir para o proximo ele so imprimi o 1 elemento da Lista.Me ajudem por favor!!!

[code]if(e.getSource()==VISUALIZAR){
try {
rs.first();
rs=s.executeQuery(“Select * from Produto”);

					String a="";
					while(rs.next()){
					String[] bd = new String[] {""+rs.getInt("Codigo"),rs.getString("Nome"),""+rs.getInt("Preco"),""+rs.getFloat("Estoque")};
					List<String> ListaBD = Arrays.asList(bd);
					
					//	JOptionPane.showMessageDialog(null,a);
					
					
					a=a+"\n"+ListaBD+"\n";		
				
					
					rel.setText(a);
					
					 Iterator it = ListaBD.iterator();  
					   int index;  
				 

					   for (int i = 0; i < ListaBD.size(); i++) {  
					     						       
					       for(int x = i + 1; x < i + 4 && x < ListaBD.size(); x++){  
					              jblnumcodigo.setText(ListaBD.get(x));
					              jtfNome.setText(ListaBD.get(x+1));
					              jtfPreco.setText(ListaBD.get(x+2));
					              jtfEstoque.setText(ListaBD.get(x+3));
					           }  
					           i = ListaBD.size();  
					       }  
					}
					
					if(!rs.first())
						JOptionPane.showMessageDialog(null, "Banco de dados vazio! Insira dados no banco antes de pesquisar!", "Nenhum registro encontrado!!!", JOptionPane.WARNING_MESSAGE);
					} catch (SQLException e1) {
						e1.printStackTrace();
						JOptionPane.showMessageDialog(null, "rrrrrrr", "Erro crítico!!!", JOptionPane.ERROR_MESSAGE);
					}
					scrollPane.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); 
					scrollPane.setHorizontalScrollBarPolicy(JScrollPane.WIDTH);
					scrollPane.add(rel);   
		        }
[/code]

Olá Carol, não consegui fazer o download do arquivo. Deixa eu v se entendi, vc tem uma lista? e quando clicar no botão todos os registros vão ser impressos? é isto?

Poste o código.