Buenas,
Veo varios problemas en el código, además de que no entiendo porque en el form3 vuelves a crear la clase Espias.
En el form3 tienes esto:
Código Java:
Ver originalprivate void jButton1MouseClicked
(java.
awt.
event.
MouseEvent evt
) { // TODO add your handling code here:
form2 f2=new form2();
f2.setVisible(true);
form3.this.dispose();
}
Estas creando una nueva instancia del form2, no usando la que ya tienes creada.
Además de que te puede crear problemas de memoria (no estás liberando el form2 que creas antes), no va a tener el comportamiento esperado.
Así lo haría yo:
Código Java:
Ver originalpublic class form2
extends javax.
swing.
JFrame {
Espias salud=new Espias();
/**
* Creates new form form2
*/
public form2() {
initComponents();
SaludActual();
}
public void SaludActual(){
int vida=salud.x;
jLabel5.
setText(String.
valueOf(vida
));
}
private void jButton1ActionPerformed
(java.
awt.
event.
ActionEvent evt
) { // TODO add your handling code here:
salud.actual(10);
SaludActual();
form3 f3=new form3(this);
f3.setVisible(true);
this.setVisible(false);
}
}
Código Java:
Ver originalpublic class form3
extends javax.
swing.
JFrame{
ventanaPadre = padre;
initComponents();
initEstadoActual();
}
public void initEstadoActual(){
//Tienes que revisar esto, la salud va a ser 0 si creas una nueva instancia
Espias salud=new Espias();
int actualF=salud.x;
if(actualF>0)
jLabel1.setText("aun tienes vida puedes seguir jugando");
else
jLabel1.setText("Game Over");
}
private void jButton1MouseClicked
(java.
awt.
event.
MouseEvent evt
) { // TODO add your handling code here:
padre.setVisible(true);
this.dispose();
}
}
Puede que no esté correcto del todo, tendrás que amoldarlo a lo que tú tengas.
Saludos.