Fórum Instanciar classe e passar paramentros com o reflection #412113

30/01/2012

0

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

Responder

Posts

30/01/2012

Robson Teixeira

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
Responder

Gostei + 0

30/01/2012

Alberto Leal

[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
Responder

Gostei + 0

01/02/2012

Dyego Carmo

Opa !

Conseguiste Resolver ?

Poderia fechar o chamado ?

Valeu !!!
Responder

Gostei + 0

01/02/2012

Alberto Leal

Opa !

Conseguiste Resolver ?

Poderia fechar o chamado ?

Valeu !!!

Onde fica essa opcao de fechar o post?.. ate hj nao consegui achar essa opcao
Responder

Gostei + 0

20/02/2012

Dyego Carmo

Do lado do Id do chamado :)

láááá em cima !

;)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar