Java - Ventana sin interaccion externa

 
Vista:
sin imagen de perfil

Ventana sin interaccion externa

Publicado por Daniel (6 intervenciones) el 19/10/2016 20:46:25
Hola, estoy trabajando con JDesktopPane y JInternalFrame´s y me surgio una duda
hay algun metodo que evite poder interactuar con otros "frames" ya habiertos?
me explico:
-abro la ventana "x"
-dentro de "x" abro la ventana "y"
-muevo "y" para abrir "z" dentro de "x" y este me lo impida ya que tengo abierta "y"
se entiende?
*help me*
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ventana sin interaccion externa

Publicado por YYanes (144 intervenciones) el 19/10/2016 22:03:17
Hola amigo:
puedes probar utilizando ventanas de tipo JDialog: si tienes una ventana X (JFrame, por ejemplo) y abres una ventana Y(de tipo JDialog) no podrás hacer nada en X mientras tengas abierta a Y; y un detalle más con los JDialogs: cuando mandas a abrir uno de éstos el código siguiente no se ejecutará hasta que cierres dicha ventana, por ejemplo:

1
2
3
4
5
Ventana_JDialog ventana = new Ventana_JDialog(this, true);
ventana .setLocationRelativeTo(null); //para hubicarla en el centro de la pantalla
ventana .setVisible(true); // para mostrar la ventana
int num = ventana.MetodoX(); // llamada al MetodoX() que está implementado en Ventana_JDialog y que devuelve un valor entero
//esta última línea se ejecutará luego de que se cierre la ventana abierta, ya que aparece después del setVisible(true)

Lo otro que puedes hacer es controlar el estado de la ventana "y" que planteas mediante una variable booleana declarada en tu ventana "x", por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
boolean ventana_Y_abierta = false;
 
public void MetodoAbrirY(){
     ventana_Y_abierta = false;
     <<resto del código que abre la ventana Y>>
}
//-------------------------------------------
public void MetodoAbrirZ(){
     if(!ventana_Y_abierta){
     <<resto del código que abre la ventana Z>>
    }
    else
    JOptionPane.showMessageDialog(null,"No se puede abrir Z mientras Y esté abierta. ","Error:",0);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar