Java - Java - recuperar foco de JInternalFrame entre varios

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Sandro (4 intervenciones) el 16/05/2019 16:06:50
Buenas:
No puedo traer al frente o recuperar el foco de un JInternalFrame.
Tengo un proyecto en el que desde un menu se abren varios JInternalFrames; por ejemplo ventana1, ventana2, ventana3, etc.; pero cuando quiero abrir otra vez la ventana1, no quiero que se cree otra (ya hice esta parte), sino que me llame a la que esta abierta y me lo ponga al frente. Busque en la red y no encuentro la solución. Ayuda por favor...
gracias
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Yamil Bracho (2315 intervenciones) el 16/05/2019 16:31:20
Prueba con
frame.setSelected(true);
frame.toFront() ;

Donde frame es la JInternalFrame que quieres mostrar..
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Sandro (4 intervenciones) el 16/05/2019 20:21:47
Gracias por tratar de ayudar Yamil, pero no funciona...
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Yamil Bracho (2315 intervenciones) el 16/05/2019 20:27:20
Tienes las refrencias a los frames ? Es decir, tienes un arreglo con las frames que has abierto ?
Tambien hay un metodo frame.moveToFront();
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Sandro (4 intervenciones) el 16/05/2019 23:57:50
Hola...
No, no tengo ninguna referencia.
El método frame.moveToFront() tampoco funciona; creo que ya probé con todos los métodos y nada
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java - recuperar foco de JInternalFrame entre varios

Publicado por Sandro (4 intervenciones) el 17/05/2019 15:19:24
Buenas, buscando por la red encontré la solución a mi problema y lo comparto, por si alguien lo necesita: Funciona de maravilla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//creamos una nueva clase por ej.  administradorDeVentanas con este código:
 
private static JDesktopPane jdesktopPane;
 
public administradorDeVentanas(JDesktopPane jdesktopPane){
    administradorDeVentanas.jdesktopPane = jdesktopPane;
}
public void abrirVentana(JInternalFrame jInternalFrame){
    if (jInternalFrame.isVisible()) {
        jInternalFrame.toFront();
        jInternalFrame.getFocusOwner();
        try {
            jInternalFrame.setSelected(true);
        } catch (PropertyVetoException ex) {
            Logger.getLogger(admVentanas.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        jdesktopPane.add(jInternalFrame);
        jInternalFrame.setVisible(true);
    }
}
 
//en las ventanas que queremos recuperarar el foco si ya están abiertas  o crearlas (tb impide que una ventana se abra varias 
//veces)hacemos lo sgte.:
 
private static JInternalFrame jInternalFrame ;
 
public static JInternalFrame getInstancia(){
    if (jInternalFrame == null)
        jInternalFrame = new JInternalFrame ();
    return jInternalFrame ;
}
 
//y finalmente invocamos a la ventana que queremos crear o abrir y poner al frente con lo sgte.
 
administradorDeVentanas.abrirVentanas(JInternalFrame.getInstancia());
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