Valores de un jFrame a otro

Spike
31 de Octubre del 2003
Hola!

Tengo una jFrame q me llama a otro, en este, se cambia el valor de una variable perteneciente a una clase que he creado yo. El problema viene cuando quiero devolver ese valor al jFrame principal. Había pensado en declarar una funcion en el segundo jFrame que llamado desde la primera, me devuelva el valor de esa variable. Pero cuando utilizo ese metodo desde el frame principal me dice que no existe.

Espero haberme explicado bien.

¿Qué solución hay para esto?


Spike
31 de Octubre del 2003

Hola!

He conseguido arreglar eso, me estaba confundiendo y no veia el error...
Pero tengo OTRO PROBLEMA... :-(
El caso, es que cuando yo llamo al otro jFrame, parece que en el frame principal, sigo haciendo cosas...

Intentaré explicarme mejor....
Si yo tengo:

private void cambiarActionPerformed(java.awt.event.ActionEvent evt){
cambiarFrame cf = new cambiarFrame();
cf.setLocation(300,200);
cf.setResizable(false);
cf.show();
System.out.println("ESTO ME LO ESCRIBE CUANDO SE ABRE LA VENTANA");

El caso es que yo querría que me escribiera eso cuando se ha cerrado la otra ventana... El otro jFrame es modal...

¿Qué tengo que hacer, para que se quede como pausado..?

Monica
31 de Octubre del 2003
Hola Spike!

¿Por qué no haces que el segundo jFrame sea un JDialog?

Spike
31 de Octubre del 2003
Muchisimas gracias Monica, eso me lo ha solucionado.!!! ;-D

Gracias!

Maria
31 de Octubre del 2003
Hola!

Spike,¿ podrías decirme como has hecho esa modificacion de la variable?, mi problema es mas o menos lo mismo y no lo acabo de solucionar.

Muchas gracias.

Spike
31 de Octubre del 2003
Hola Maria,

Te explico. El problema que yo tenía era que me había confundido en la parte del código, y estaba llamando a esa función con otro frame, pero en realidad, ahora hago lo mismo que haces tu... (creo)

Bueno, el caso es, que no puedes pasarle el valor de la variable tal cual, porque esa variable no existe en el primer frame, ¿me sigues? Es decir, que no puedes hacer algo así en el frame1:
String cadena = new String(jTextField.getText()); porque te lo cogería de ese propio frame. ¿Entiendes?
Por lo tanto, tendrías que hacer como te respondía Monica. O lo que puedes hacer, es lo que hago yo. Crearte en el segundo frame una función que te devuelva ese string:

public String devolverValor(){
return jTextField.getText();
}

y luego en el frame uno haces:

String cadena = frame2.devolverValor();
jTextArea.setText(cadena);

Espero haberme explicado bien y que te sea de ayuda. Si tienes alguna duda, vuelve a preguntarme... Suerte!