Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Como puedo obtener la descripcion(getText) de un JTextField dinamico

Estas en el tema de Como puedo obtener la descripcion(getText) de un JTextField dinamico en el foro de Java en Foros del Web. Hola buenas tardes. Mi pregunta es , como puedo obtener los valores de la descripción de un JTexField cuando lo creo dinamicamente , osea puedo ...
  #1 (permalink)  
Antiguo 12/03/2014, 15:12
Avatar de Jawbreaker  
Fecha de Ingreso: febrero-2014
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Como puedo obtener la descripcion(getText) de un JTextField dinamico

Hola buenas tardes.

Mi pregunta es , como puedo obtener los valores de la descripción de un JTexField cuando lo creo dinamicamente , osea puedo tener 2, 3 o 4 caja de texto pero no se como capturar su getText de los 2, 3 o 4 caja de texto.
Cuando le doy el getText() solo obtengo la descripcion del ultimo JtexField ingresado y no de los primeros campos
Dejo mi codigo:

// Dentro la clase ----> class JDialog
JButton btnCancelarC,btnAceptarC ;
JTextField caja;

public JTextField crearCajaTexto(String nombre, int pos, int tamaño)
{
caja = new JTextField();
caja.setName(nombre);
//caja.getName();
caja.setBounds(139, pos*45, tamaño, 26);
return caja;
}


public void JdialogDianamico(String seleccion,String opcion){
man = new FuncionesMant();
try {
getContentPane().setLayout(null);
setSize(324, 345);
setLocationRelativeTo(null);
int i = 1;
for(Object[] fila:man.Mantenimiento(seleccion,opcion))
{
getContentPane().add(crearlabel(fila[0].toString(), i));


switch(fila[2].toString()){
case "Caja":
getContentPane().add(crearCajaTexto(fila[1].toString(), i, Integer.parseInt(fila[3].toString())));
break;
}
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}}



@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btnCancelarC){
this.dispose();
}
if(e.getSource()==btnAceptarC){
String varNombre;
String varValue;
varNombre=caja.getName();
varValue=caja.getText();

System.out.println("----------");
System.out.println(varNombre);
System.out.println(varValue); // ---- Aca solo obtengo la descripcion del ultimo(getText()) ingresado
}
}
  #2 (permalink)  
Antiguo 12/03/2014, 15:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Como puedo obtener la descripcion(getText) de un JTextField dinamico

En la variable caja sólo estás guardando la última caja que has creado, ya que cada

caja = new JTextField

te hace perder la referencia a los JTextField anteriores.

En vez de una variable JTextField caja, deberías tener una List<JTextField> caja y cada vez que crees una caja. la añades a la lista. Luego, para obtener los textos, recorre la lista de cajas y pídele el texto a cada caja.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 12/03/2014, 22:38
Avatar de Jawbreaker  
Fecha de Ingreso: febrero-2014
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como puedo obtener la descripcion(getText) de un JTextField dinamico

Hola chuidiang, gracias por responder , he tratado de hacerlo como dices, pero sigo teniendo el mismo problema, ahí esta mi código

Código:
  // Dentro la clase ----> class JDialog 
              JButton btnCancelarC,btnAceptarC ;
              JTextField caja;
              List<JTextField> ListCaja;

             public JTextField crearCajaTexto(String nombre, int pos, int tamaño)
	   {
                  int c=0;
		  caja =new JTextField();
		  ListCaja=new ArrayList<JTextField>();
                  caja.setName(nombre);

                  ListCaja.add(c,caja);
                  c++;
		  caja.setBounds(139, pos*45, tamaño, 26);

		  return caja;
	    }


Código:
@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==btnCancelarC){
			this.dispose();	
		}

		if(e.getSource()==btnAceptarC){
            String varValue;
            String varValue2;
            String varValue3;
    		 
    		// Iterator iter = ListCaja.iterator();
    		// while (iter.hasNext()){
    		//   System.out.println(iter.next());
    		// }
    		 
     
           varValue=ListCaja.get(0).getText();
         varValue2=ListCaja.get(1).getText(); //sale error
         varValue3=ListCaja.get(2).getText(); //sale error

       // System.out.println("----------");
       System.out.println(varValue); 
      System.out.println(varValue2); //sale error
    System.out.println(varValue3);   //sale error
     
		}
	}
El error que me sale es este"
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1"
Osea solo tiene una posición , pero no se porque si lo estoy agregando o no ?


Gracias.
  #4 (permalink)  
Antiguo 12/03/2014, 22:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Como puedo obtener la descripcion(getText) de un JTextField dinamico

Si creas una lista nueva (new ArrayList) cada vez que creas una caja, pierdes las anteriores. Crea la lista una sola vez fuera del método crearCajaTexto(), por ejemplo, donde declaras la variable.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 13/03/2014, 08:42
Avatar de Jawbreaker  
Fecha de Ingreso: febrero-2014
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como puedo obtener la descripcion(getText) de un JTextField dinamico

Ohhh genial viejo tienes razón, eso era, solo mover el new ArrayList() arriba, fuera del método porque sino pierdo las anteriores por cada new ArrayList() dentro de mi metodo.
gracias :)

Etiquetas: clase, dinamico, jtextfield, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:00.