Instanciar classe e passar paramentros com o reflection

Java

30/01/2012

Ola bom dia na minha aplicacao tenho um jtree onde cada nó é o nome de um programa,
e ae clicar nos nós gostaria de instanciar as classes das minhas aplicacoes, ( jdialogs) passando alguns paramentros
por exmplo

tree.addTreeSelectionListener(new TreeSelectionListener() {
		    public void valueChanged(TreeSelectionEvent e) {
		        DefaultMutableTreeNode node = (DefaultMutableTreeNode)
		                           tree.getLastSelectedPathComponent();

		        if (node == null) return;
		        
		        Object nodeInfo = node.getUserObject();
				// aki fazer o refletion e passar os paramentros instanciar a classe
				Class<?> clazz = Class.forName(SGV.+nodeInfo.toString().toUpperCase()); //SGV é o pacote, nodeInfo é o nome da classe a ser instanciada
				//passar paramentros JDiloag null e Variaveis vars
				// instanciar a classe e invocala par exbir o JDialog
Alberto Leal

Alberto Leal

Curtidas 0

Respostas

Robson Teixeira

Robson Teixeira

30/01/2012

Pesquise o uso da classe Constructor da api reflection pois com ela você poder pegar o método contrutor com os argumentos que tiver. ou sobre a classe Method se deseja apenas invocar o método main de sua app.

espero ter ajudado.
att
robson
GOSTEI 0
Alberto Leal

Alberto Leal

30/01/2012

[Solucao]
Class<?> clazz = null;
clazz = Class.forName(SGV.+vars.getProgramaS());
Constructor<?> construtor = null;
construtor = clazz.getDeclaredConstructor(JDialog.class,Variaveis.class);
Object instanciaObject = construtor.newInstance(null,vars);

Tudo isso dentro dos try catch
e dentro das classes coloquei um setvisible
GOSTEI 0
Dyego Carmo

Dyego Carmo

30/01/2012

Opa !

Conseguiste Resolver ?

Poderia fechar o chamado ?

Valeu !!!
GOSTEI 0
Alberto Leal

Alberto Leal

30/01/2012

Opa !

Conseguiste Resolver ?

Poderia fechar o chamado ?

Valeu !!!

Onde fica essa opcao de fechar o post?.. ate hj nao consegui achar essa opcao
GOSTEI 0
Dyego Carmo

Dyego Carmo

30/01/2012

Do lado do Id do chamado :)

láááá em cima !

;)
GOSTEI 0
POSTAR