Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problema al Instanciar un JDialog Con Class.forName

Estas en el tema de Problema al Instanciar un JDialog Con Class.forName en el foro de Java en Foros del Web. bueno, lo que quiero hacer es llamar a un Jdialog utilizando el Class.forName() tengo esto @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original JDialog d = ...
  #1 (permalink)  
Antiguo 14/02/2013, 04:25
Avatar de wfrancootero  
Fecha de Ingreso: abril-2012
Ubicación: Bucaramanga
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Problema al Instanciar un JDialog Con Class.forName

bueno, lo que quiero hacer es llamar a un Jdialog utilizando el Class.forName()
tengo esto
Código Javascript:
Ver original
  1. JDialog d = new JDialog(this, true);
  2. try{
  3.  JDialog dialogo = (JDialog) Class.forName("Dialogo").newInstance();
  4.                 d= dialogo;
  5.                 d.setVisible(true);
  6. }catch(.......){
  7. .........
  8. }

pero me sale este error
java.lang.InstantiationException: Dialogo

como puedo solucionar esto es que ya no se que hacer, les agradezco :)
  #2 (permalink)  
Antiguo 14/02/2013, 12:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Pues en Class.forName() debes poner como parámetro el nombre de una clase con todo el package que lleva delante, en vez de "Dialogo" sería JDialog o Dialog y además el paquete, es decir

Código java:
Ver original
  1. JDialog dialogo = (JDialog) Class.forName("javax.swing.JDialog").newInstance();
  2.  
  3. Dialog otroDialgo = (Dialog)Class.forName("java.awt.Dialog").newInstance();

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/02/2013, 13:32
Avatar de wfrancootero  
Fecha de Ingreso: abril-2012
Ubicación: Bucaramanga
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Cita:
Iniciado por chuidiang Ver Mensaje
Pues en Class.forName() debes poner como parámetro el nombre de una clase con todo el package que lleva delante, en vez de "Dialogo" sería JDialog o Dialog y además el paquete, es decir

Código java:
Ver original
  1. JDialog dialogo = (JDialog) Class.forName("javax.swing.JDialog").newInstance();
  2.  
  3. Dialog otroDialgo = (Dialog)Class.forName("java.awt.Dialog").newInstance();

Se bueno.
Gracias por tu respuesta, Claro, si eso es lo que hago, puse "Dialogo" como para ilustrar, pero claro lo hago así , como dices, pongo el nombre de la clase con el package
Código PHP:
Ver original
  1. JDialog dialogo = (JDialog) Class.forName("facturacion.frmIva").newInstance();

Es que tengo guardado en una base de datos los nombres de las clases con el package y todo, ya pude hacer que salga un JInternalFrame pero Con el JDialog no he podido me sale ese error Siempre
  #4 (permalink)  
Antiguo 14/02/2013, 16:13
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Según la API de newInstance()

Cita:
InstantiationException - if this Class represents an abstract class, an interface, an array class, a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.
así que asegurate que tu case no es abstracta, ni un interface, que tiene un constructor sin parámetros y que no da ningún error al hacer un new de esa clase usando el constructor sin parámetros.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 14/02/2013, 17:22
Avatar de wfrancootero  
Fecha de Ingreso: abril-2012
Ubicación: Bucaramanga
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Cita:
Iniciado por chuidiang Ver Mensaje
Según la API de newInstance()



así que asegurate que tu case no es abstracta, ni un interface, que tiene un constructor sin parámetros y que no da ningún error al hacer un new de esa clase usando el constructor sin parámetros.

Se bueno.
WOw Gracias me has Ayudado Muchísimo Gracias infinitas
lo que hice fue crear un nuevo constructor sin paramentos en cada Jdialog con eso ya me los muestra

ahora tengo que arreglar lo del parent por que si clico fuera de ese Jdialog me lo manda detrás del Jframe Principal Pero Bueno Muchísimas Gracias Eres mi puto Dios
  #6 (permalink)  
Antiguo 14/02/2013, 17:45
Avatar de wfrancootero  
Fecha de Ingreso: abril-2012
Ubicación: Bucaramanga
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Bueno me respondo por lo del parent ejeje
para solucionar eso, en cada JDialog, en el constructor sin parámetros que cree, llame al super() allí le pase por parámetros la clase padre y el modal en true, con eso solucione mi problema no se si sea la forma mas adecuada pero me funciona :P

Muchas Gracias a chuidiang por su ayuda
  #7 (permalink)  
Antiguo 14/02/2013, 23:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema al Instanciar un JDialog Con Class.forName

Hola:

Por aquí tienes cómo pasar parámetros a un constructor con newInstance() http://stackoverflow.com/questions/2...ctor-arguments

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: instanciar, jdialog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:14.