Duda haciendo ejercicio Java

Buenas, estoy realizando una aplicación en Java, y quiero hacer una cosa pero no se si se puede. Os pongo un ejemplo de lo que quiero hacer:
//Teniendo dos TextField, uno llamado txt_11 y otro txt_21:
int i=1;

while(i<2){
     System.out.println(txt_+i+1.getText());
     i++;
}


Claramento esto no se puede hacer, pero quiero saber si hay alguna manera de "concatenar variables" para así poder usar la que necesito. He estado buscando pero no encuentro nada relacionado con esto, a ver si podéis echarme una mano.

Saludos!
Ñe, lo que tienes es un problema de diseño. Eso debería ser un array.

Pero como poder se puede, pero este metodo no fue pensado para estas cosas. Por lo que es un poco engorroso:

TextField text = (TextField) getClass().getField("txt_"+i+1).get(this);
System.out.println(text.getText());


Estoy suponiendo que el Textfield se encuentra en la clase actual (this).
amchacon viendo que tiene bajo nivel no empieces a hablarle de reflection ahora...


The-Yutse, para eso se usa arrays, que es una lista muy básica.

//Creamos una array de tamaño 2
TextField textFields[] = TextField[2];

//Guardamos nuestros campos en las posiciones
textFields[0] = txt_11;
textFields[1] = txt_21;

//Con un bucle vamos accediendo a la posición i
for (int i = 0; i < 2; i++)
   System.out.println(textField[i].getText() );



También podríamos crear los textfields directamente en el array en vez de crearlos como txt_11 y txt_21


//Creamos una array de tamaño 2
TextField textFields[] = TextField[2];

//Guardamos nuestros campos en las posiciones
textFields[0] = new TextField()
textFields[0].setX(....) //Le damos los valores que queramos y demás

textFields[1] = new TextField()

//Con un bucle vamos accediendo a la posición i
for (int i = 0; i < 2; i++)
   System.out.println(textField[i].getText() );



Y podremos acceder a ellos con textField[ELQUSEA] desde cualquier lado en vez de tener que declarar una variable por cada uno.
Muchas gracias por las respuestas. En realidad lo de hacerlo con arrays ya lo tenía pensado, simplemente tenía la curiosidad de si se podía hacer algo similar a lo que dije para agilizar lo que tenía que hacer.

Gracias por vuestros consejos, saludos!
Se le llama "reflection".

Si haces un getClass() de la clase, puedes adceder a los atributos internos de la clase (nombre,variables, metodos, constructores...). Te dejo la referencia aquí:
https://docs.oracle.com/javase/7/docs/a ... Class.html

System.out.println("El nombre de esta clase es: " + getClass().getName());
4 respuestas