Hola,
la comparación al ser cadenas la estoy haciendo con compareTo, perdón si puse == fue por escribir rápido.
El array de JTextField lo creo del tamaño de la lista y lo inicializo para cada JTextField con un nombre:
Código:
for(int i=0; i<txt.length; i++) {
txtDescripcion = new JTextField();
nombre = lista.get(i).toString();
txtDescripcion.setName(nombre);
txt[i] = txtDescripcion;
}
Después de esto hago una llamada al método que creará los paneles:
Código:
int contador = 0;
while(it.hasNext()) {
nombreLista = it.next().toString();
crearPanel(nombreLista, contador);
contador++;
}
El código del método "crearPanel" sería:
Código:
public void crearPanel(String nombre, int contador) {
panel = new JPanel();
panel.setLayout(null);
panelDescripciones.add(panel);
lblDescr = new JLabel("Descripci\u00F3n:");
lblDescr.setBounds(10, 23, 130, 14);
panel.add(lblDescr);
txtDescr = txt[contador];
txtDescr.setBounds(150, 20, 400, 20);
txtDescr.setColumns(10);
panel.add(txtDescr);
}
Por último tengo otro método que se encarga de guardar los valores de las cajas de texto cuando se ejecuta el onClick del botón:
Código:
private void guardarTxt() {
if(txtDescr.getName().compareTo(lista.get(0).toString()) == 0) {
descripciones[0] = txtDescr.getText();
}
}
Ese es todo el código que uso para generar los JTextField.
Un saludo