Primero y antes que nada:
UN MILLON Y MEDIO DE GRACIAS!!!! CONSEGUIDOO!!!
Tu explicacion me ha salvado la vida. Pero aun asi no lo he hecho como tu. Te explico las diferencias que tenia.
En la primera ventana de todas, en el FrameView, en el boton tu haces:
JFrame mainFrame = DesktopApplication1.getApplication().getMainFrame( );
...
...
y yo simplemente hago:
InscribirParticipante rs = new InscribirParticipante(null, true);
rs.setVisible(true);
Pensaba que eso afectaba en algo, pero ahora que he conseguido solucionarlo me funciona tanto con null como con MainFrame como el tuyo.
Luego, en el constructor de la tercera ventana, tus parametros son:
Cita: public d2(JDialog parent, boolean modal) {}
Y ami por defecto Netbeans me lo crea asi:
Cita: public BuscarPais(java.awt.Frame parent, boolean modal){}
Esto me impedia el que desde la ventana intermedia, al llamar a la ultima ventana, me impedia poder pasarle
this y tenia que pasarle
null. Cita: BuscarPais bp = new BuscarPais(null, true);
Tampoco se que en afecta el pasarle this o null, porque me funciona de las dos maneras....
Ahora viene lo bueno. Os preguntareis..."entonces? Si te funciona igual con esas diferencias, que has hecho para que te funcione???"
Pues el error, la cagada, la tenia en la ventana intermedia.
Porque por un lado tenia este codigo que es el que segun que elemento del combobox elegia, me creaba la ventana HIJA...
Cita: switch(indice){
case 0:
break;
case 1:
BuscarPais bp = new BuscarPais(null,true);
bp.setVisible(true);
.....
y luego en el metodo recibe_judokas_pais(); que es el metodo que me rellenaba la tabla, en este metodo, para llamar al ArrayList de la ventana hija me volvia a crear otra "BuscarPais bp = new BuscarPais(null,true);" Y como la ventana real que se veia era la otra, pues no me pasaba nada.
Total, que lo que he hecho, a sido hacer como TU. En el mismo codigo donde tengo el boton en la ventana intermedia para llamar a la hija, he añadido el codigo necesario para recibir el arrayList y llenar la jtable. Y el metodo recibe_judokas_pais(); ha pasado a mejor vida.
En resumen, no me daba cuenta de que creaba por un lado la ventana hija...y por otro, para llamar a un metodo de esa clase me creaba otra vez lo mismo...
De nuevo MIL gracias ioel10! Si no es por tu codigo me paso años mirando mi codigo sin darme cuenta!
:apla uso:
pd: No se que diferencia hay con lo que te he dicho al principio entre tu codigo y el mio, puesto que en vez de THIS si pongo NULL en mis llamadas a las nuevas ventanas me funciona igual...incluso yo no hago el:
//JFrame mainFrame = Gestion_campeonatos.getApplication().getMainFrame( );
Pero si lo hago, luego en el constructor de la ventana JDialog tengo que cambiar esto:
Cita: public BuscarPais(java.awt.Frame parent, boolean modal){}
Por esto:
Cita: public BuscarPais(JDialog parent, boolean modal)
Y en consecuencia, tambien tengo que cambiar en el main el metodo run de:
Cita: public void run() {
BuscarPais dialog = new BuscarPais(new javax.swing.JFrame(), true);
......
a:
Cita: public void run() {
BuscarPais dialog = new BuscarPais(new javax.swing.JDialog(), true);
....
Pues eso, que sea como sea, ME FUNCIONA TODO BIEN.