Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2013, 11:09
Idrojmaestro
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Problemas con el tratamiento de datos de un JPanel

Hola.
Estoy haciendo una aplicación con varios JPanel y en uno de ellos pongo un GridBagConstraints con:
-3 columnas
-Varias filas con 3 JTextField (las filas pueden haber más o menos dependiendo del dato que muestro).
-La ultima fila es un botón que ocupa las 3 columnas para ir añadiendo filas

Hacer el panel lo consigo, ampliar las filas y volver a poner el botón al final también.

El problema al querer recuperar los datos de las celdas para tratarlos después.
No se como recuperar solo los JTextField evitando los label y el boton.
Me pensaba que con getComponents() me devolveria todo lo que le he metido en el mismo orden en que lo metí, pero lo primero que puse fue los label y al recuperar los componentes me da los JTextField primero.

En un principio he puesto lo siguiente:
Código Java:
Ver original
  1. public ArrayList <String[]> getArlIngredientes() {
  2.                 ArrayList <String[]> b = new ArrayList <String[]> ();
  3.                 Component [] a = this.panelIngredientes.getComponents();
  4.                 int i = 0;
  5.                 JTextField j;
  6.                 String[] s = {"","",""};
  7.                 for (int e=0; e<this.panelIngredientes.getComponentCount()-1;i++){
  8.                         j = (JTextField) a[e];
  9.                         s[0] = j.getText();
  10.                         e = e+1;
  11.                         j = (JTextField) a[e];
  12.                         s[1] = j.getText();
  13.                         e = e+1;
  14.                         j = (JTextField) a[e];
  15.                         s[2] = j.getText();
  16.                         System.out.println(s[0]+s[1]+s[2]);
  17.                         b.add(i, s);
  18.                         e= e+1;
  19.            
  20.                 }
  21.                 return b;
  22.         }
¿Como puedo identificar los diferentes componentes?

Al principio había puesto e=2 para evitar los 3 label primeros y el -1 es para no tratar el botón que es el ultimo. Pero he visto que en el 0 viene el primer JTextField y cuando terminan los JTextField casca porque no puede castear a JTextField.


Gracias por adelantado.

Última edición por razpeitia; 17/06/2013 a las 18:19