Reflection (Resolvido)

eu tenho uma aplicacao que trabalha em um jdesktoppanel
e no jdesktoppanel eu incluo algumns internalframes

e estes internalframes sao opcoes de um determinado menu…
nao me perguntem porque faco isso… pois e minha necessidade…
como exemplo eu tenho o trecho do aplicativo abaixo:

observem que a string “s” eu coloquei o nome do meu internalframe
porem
eu preciso que esta linha:

        this.PainelTela.add((meuinternalframe) objeto);

adicione ao meu jdesktoppanel “paineltela” o objeto que na realidade e um jinternalframe
observem que da maneira que esta funciona porem eu preciso fazer um cast do objeto por reflexao ja que
o (meuinternalframe) e variavel…
this.PainelTela.add((“como fazer este cast”) objeto);

se alguem poder ajudar… agradeco desde ja…

String s="pocateo.meuinternalframe"; try { Class MinhaClasse = Class.forName(s); Class[] params = {JFrame.class}; Constructor construtor = MinhaClasse.getConstructor(params); Object[] parametros = {this}; Object objeto = construtor.newInstance(parametros); this.PainelTela.add((meuinternalframe) objeto); Class[] parboolean = {boolean.class}; objeto.getClass().getMethod("setVisible", parboolean).invoke(objeto, true); System.out.println("teste002"); } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ex) { System.out.println(ex.getMessage()); }

[quote=jonasjgs2]eu tenho uma aplicacao que trabalha em um jdesktoppanel
e no jdesktoppanel eu incluo algumns internalframes

e estes internalframes sao opcoes de um determinado menu…
nao me perguntem porque faco isso… pois e minha necessidade…
como exemplo eu tenho o trecho do aplicativo abaixo:

observem que a string “s” eu coloquei o nome do meu internalframe
porem
eu preciso que esta linha:

        this.PainelTela.add((meuinternalframe) objeto);

adicione ao meu jdesktoppanel “paineltela” o objeto que na realidade e um jinternalframe
observem que da maneira que esta funciona porem eu preciso fazer um cast do objeto por reflexao ja que
o (meuinternalframe) e variavel…
this.PainelTela.add((“como fazer este cast”) objeto);

se alguem poder ajudar… agradeco desde ja…

String s="pocateo.meuinternalframe"; try { Class MinhaClasse = Class.forName(s); Class[] params = {JFrame.class}; Constructor construtor = MinhaClasse.getConstructor(params); Object[] parametros = {this}; Object objeto = construtor.newInstance(parametros); this.PainelTela.add((meuinternalframe) objeto); Class[] parboolean = {boolean.class}; objeto.getClass().getMethod("setVisible", parboolean).invoke(objeto, true); System.out.println("teste002"); } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ex) { System.out.println(ex.getMessage()); }[/quote]

this.PainelTela.add(MinhaClasse.cast(objeto));

obrigado gcamera
mas tambem nao deu certo assim…

mas consegui resolver o problema…
o comando certo fica assim:

this.PainelTela.add((JInternalFrame) objeto);

Por nada, ainda bem que conseguiu resolver o problema :smiley: