Java - jinternalframe

 
Vista:

jinternalframe

Publicado por carla (12 intervenciones) el 07/07/2010 00:50:01
hola amigos al grano. tengo una aplicacion mdi en donde tengo varios jinternalframe, todo funciona de maravilla, pero lo que quiero hacer es que solo me abra una instancia de mi jinternal frame
este es mi codigo:

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {



nuevo n=new nuevo();
this.jDesktopPane1.add(n);
n.setVisible(true);
}
}

al hacer clic en el menu me muestra el jinternalframe, pero cuando vuelvo a hacer clic vuelve aparecer otro igual, y eso es lo que no quiero. agradecere cualquier ayuda.....
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

RE:jinternalframe

Publicado por mayrita (163 intervenciones) el 07/07/2010 05:17:28
podrias instanciar el internalframe en otro lado y tenerlo visible false y en tu evento que solo lo cambie a visible true
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

jinternalframe

Publicado por Cristhian Carreño (1 intervención) el 11/01/2012 16:24:36
He estado trabajando mucho en este tema y resolvi como solución no capturar la instancia creo q lo mas efectivo es que al momento de crear la instancia nueva, desabilitar el boton o el item del menu con "setEnable(false);", y al momento de cerrar esa ventana enviar q este elemento se vuelva a habilitar "setEnable(true);".

Ej:
Clase a{


//asumos q ya todo los componentes estan
//inicializados y en funcionamiento

private JMenuItem/JButton NombreBoton;

//aqui es donde le doy la accion crear
//la nueva instancia desde un evento

private void nuevaVentanaXActionPerformed (java.awt.event.ActionEvent evt) {
NombreBoton.setEnabled(false);//atencion
b instanciaB = new b(NombreBoton);
instanciaB.show();
this.JDesktopPane.add(NombreBoton);
}
}

Clase b{

private JMenuItem/JButton NombreBoton;

//Aqui solo inicializo un elemento para
//luego enviarlo como parametro al constructor
//de la instancia q voy a crear y solo
//para decirle q cuando cierre la instancia
//el componente se vuelva habilitar

public b(JMenuItem/JButton instancia) {
NombreBoton = instancia

}
private void botonCerrarNuevaInstancia ActionPerformed
(java.awt.event.ActionEvent evt) {
NombreBoton.setEnabled(true);
this.dispose();
}
}

//esto es solo explicativo no lo copien y lo peguen
porque nunca les va a funcionar, solo entiendan la logica
y se daran cuenta q es demasiado sencillo y practico
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

jinternalframe

Publicado por harold (1 intervención) el 28/02/2012 20:47:05
amigo lo mejor que puedes hacer a la hora de manejar internalframe es limpiar el desktopPane y llamar a la forma, si quieres que se vea sin el titulo y que paresca una aplicacion verdadera mete en caada internal this.setLocation(-10, -28) en el constructo y en cada item del mdi escribe algo asi
IF_EliminarUsuario objElim=new IF_EliminarUsuario();
this.desktopPane.removeAll();
desktopPane.add(objElim);
objElim.setVisible(true);
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