Bom, desenvolvendo uma aplicação MIDlet em J2ME com a IDE Eclipse esbarrei em um problema.
O objetivo dessa minha aplicação é fazer o cadastro de Alunos e Cursos, através dos itens TextField’s, DateField’s e outros componentes de um formulário, armazenando toda a informação em variáveis.
Não existe nenhuma ligação com banco de dados ou algo assim, toda a informação é perdida quando o sistema é finalizado; e não faz mal, é esse mesmo o propósito.
Para cadastrar o nome, a data de nascimento, o curso e o módulo de cada aluno, eu criei Arrays e um loop com FOR para cadastrar em um índice do array cada vez que o usuário fizer um novo cadastro. A questão é que não posso limitar este array, então criei a seguinte lógica, que apresenta a exceção ArrayIndexOutOfBoundsException. Por favor, comentem os possíveis erros lógicos/sintáxicos ou qualquer coisa do tipo.
}else if (d == form2){
if (c == aluno){
cadastroAluno();
}else if (c == outroCadastro){
outroCadastro();
}else if (c == curso){
cadastroCurso();
}else if (c == cadastrar){
for(int con = cn; con < xn; con++) {
if (nomes[con] == null){
nomes[con] = nomeAluno.getString();
System.out.println(nomes[con] + xn);
nomeAluno.setString("");
xn = xn+1;
cn += 1;
System.out.println(xn + "" + cn);
break;
}
}
for(int con = cc; con < xc; con++) {
if (cursos[con] == null){
cursos[con] = cursoAluno.getString();
System.out.println(cursos[con]);
cursoAluno.setString("");
xc = xc+1;
cc += 1;
break;
}
}
for(int con = cd ; con < xd; con++) {
if (datas[con] == null){
datas[con] = dataNasc.getDate().toString();
System.out.println(datas[con]);
dataNasc.setDate(null);
xd = xd+1;
cd += 1;
break;
}
}
for(int con = cm; con < xm; con++) {
if (modulo[con] == null){
modulo[con] = modAluno.getString();
System.out.println(modulo[con]);
modAluno.setString("");
xm += 1;
cm += 1;
break;
}
}
}
Declaração das variáveis:
int xn = 1,xc = 1,xd =1, xm=1, cn = 0, cc = 0, cd = 0, cm = 0;
String nomes[] = new String[xn];
String cursos []= new String [xc];
String datas[] = new String [xd];
String modulo[] = new String [xm];
Explicação:
Form2 é o formulário de cadastro de alunos;
cn é “contador nomes”, e serve para controlar o número de índices do array, que não pode ser limitado e aumenta cada vez que um novo nome é adicionado;
cd é um “contador de datas”;
cc é um “contador de curso”;
cm é um contador de módulos";
xn (xc, xd, xm) é “x nomes”, e serve apenas para completar a lógica implementada;
con é apenas um contador para o FOR;
A linha “System.out.prin…” foi adicionada só para facilitar na hora da programação e será removida no fim do programa.
Agradeço desde já.