Carinha, isso não é todo o seu código, é? Se isto for um pedacinho de um código de um JFrame, talvez funcione… De qualquer forma, tá feio pra cacete…
Porque colocar 5 variáveis na inicialização se você não utiliza todas? Isto só polui o código.
Convém lembrar que, embora as linguagens de programação deixe você fazer muitas coisas malucas, muitas vezes elas prejudicam a legibilidade do código. E baixa legibilidade implica em aplicação morta, em pouco tempo, pois aplicação que não pode ser mantida acaba sendo substituída…
Mas você executa aparece algum erro :?: Não cheguei executar, mas olhando por cima, pude ver variáveis desnecessárias (b, c e d) dentro do loop, podendo otimizar assim:
private JTextField[] caixas = new JTextField[5];
byte b=30,c=30,d=30;
for (byte i=0,a=15;i<5;i++,a+=45){
caixas[i] = new JTextField();
caixas[i].setBounds(a,b,c,d);
getContentPane().add(caixas[i]);
}
Você está usando no seu projeto as variáveis b, c, d em algum outro método ou muda os valores delas? Elas são meio inuteis, o código podia ficar assim:
private JTextField[] caixas = new JTextField[5];
for (byte i=0,a=15;i<5;i++,a+=45){
caixas[i] = new JTextField();
caixas[i].setBounds(a,30,30,30);
getContentPane().add(caixas[i]);
}
Tudo bem gente, convenções aceitas de bom grado. Sério mesmo. Mas o foco não é esse. Onde estou não tem Eclipse, mas eu executei esse código ontem em casa, e ele só gerou um JTextField. O problema aqui é a lógica do loop. Com relação as variáveis, um array com posições a mais, eu entendo, mas o foco não é esse, até porque eu fiz correndo.
O problema não é o código desnecessário, o problema é simplesmente que o loop não cria as demais caixas de texto, independente de eu ter criado as variáveis b,c ou d ou colocado posições que não utilizarei no meu array.