Tá dando esse erro: java.lang.NullPointerException.
Será q o banco access não ta suportando tantas consultas ao banco??
Me deêm alguma idéia pra que seja feita só uma consulta nesse banco, pq é necessario criar varias vezes uma variavel do tipo desta classe Cromossomo.
[code]
import java.util.Vector;
import javax.swing.;
import java.sql.;
import javax.swing.table.DefaultTableModel;
public class BancoD
{
private Connection can;
private void conectar(String driver, String url, String login, String senha)
{
try
{
Class.forName(driver);
System.out.println(“DRIVER CARREGADO”);
this.can=DriverManager.getConnection(url, login,senha);
}
catch (Exception e)
{
System.out.println(“Erro!”);
}
}
public Vector listarTurma()
{
Vector dados = new Vector();
try
{
String sql = “select CodTurma, Disciplina, Turno, Carga from Turma ORDER BY CodTurma”;
Statement s = this.can.createStatement();
ResultSet rs = s.executeQuery(sql);
String x = “”; String y ="";
while(rs.next())
{
int[] alelo = new int[3];
alelo[0] = rs.getInt(1);
x = “”+rs.getInt(2);
y = “”+rs.getInt(3);
alelo[1] = Integer.parseInt(x+y);
alelo[2] = rs.getInt(4);
dados.add(alelo);
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Erro listarTurma: " + e);
}
return dados;
}
public Vector listarProf()
{
Vector dados = new Vector();
try
{
String sql = "select CodProfessor, CodDisciplina from Professores ORDER BY CodProfessor";
Statement s = this.can.createStatement();
ResultSet rs = s.executeQuery(sql);
while(rs.next())
{
int[] alelo = new int[2];
alelo[0] = rs.getInt(1);
alelo[1] = rs.getInt(2);
dados.add(alelo);
}
}
catch(Exception e)
{
System.out.println("Erro listarProfessor: " + e);
}
return dados;
}
public void setConectar(String driver, String url, String login, String senha)
{
conectar(driver, url,login,senha);
}
}[/code]
[code]public Cromossomo() {
cromo = new Vector();
Vector cromo2 = new Vector();
Vector aux = new Vector();
Vector V = new Vector();
Vector P = new Vector();
aplicacao.setConectar(driver, url, login, senha);
V = aplicacao.listarTurma();
P = aplicacao.listarProf();
int linha = 0;
int conteudo[][]=new int[2][25];
int dado[] = new int[3];
int dado2[] = new int[3];
for(int cont=0; cont< V.size(); cont++){
dado = (int[]) V.elementAt(cont);
if(cont>0)
dado2 = (int[]) V.elementAt(cont-1);
else
dado2 = dado;
if(dado[0]==dado2[0])
{
linha = linha;
for(int conta=0; conta< dado[2]; conta++){
int coluna = (int) (Math.random()*25);
if(conteudo[1][coluna]!= 0)
conta--;
else
conteudo[1][coluna] = dado[1];
}
}
else{
linha++;
cromo2.add(conteudo);
for(int p=0; p<25; p++){
conteudo[1][p] = 0;
}
}
}
for(int cont=0; cont< cromo2.size(); cont++){
String jana = "";
int k = 0;
int prof[][]= new int [2][25];
prof = (int[][]) cromo2.elementAt(cont);
for(int j=0; j<25; j++){
int d = prof[1][j];
if(d!=0){
jana = ""+d;
int t = jana.length();
jana = jana.substring(0,t-1);
if(!jana.equals("")){
d = Integer.parseInt(jana);
for(int l=0 ; l<P.size(); l++){
int prf[]= new int[2];
prf = (int[])P.get(l);
int pr = prf[1];
if(pr==d){
aux.add(pr);
}
}
int h = (int)(Math.random()*aux.size());
k = (Integer) aux.get(h);
prof[1][j] = k;
int algum = prof[1][j];
}
}
}
cromo.add(prof);
}
aptidao = 0; probalidadeSelecao = 0;
}[/code]