Chamando classes dinamicamente

4 respostas
O

Olá…

existe algum tipo de se retornar uma classe atravez de seu nome

ex:

eu tenho em meu banco de dados varios nomes de classe em uma tabela chamada classes, tipo, JPane, JText, JButton

ai eu gostaria de percorrer linha a linha dessa tabela e inserir em um FRAME dinamicamente mas soh apartir do nome da classe, existe algo assim no java??

um exemplo utópico seria assim:

String nomedaclasse="JPane"; frame.add (classe_que_retorna_otra_apartir_do_nome.getClass(nomedaclasse)); //e aqui adiciona o objeto JPane

4 Respostas

BrunoBastosPJ

O que você pode fazer é na mão mesmo… Tem algumas coisas que você pode fazer usando ClassLoader, mas o que usei usava a classe JarFile, JarEntry e Manifest. Na verdade já peguei pronto apenas para adaptar no meu código, eu não fazia nada passando string. às vezes vale apena dar uma olhada nessas classes e ver se você acha alguma coisa. De qualquer forma se não der você pode ter um switch grandinho nesse método xD

G

Esquece, confundi as coisas :oops:

J

Class classe = Class.forName("pacote.MinhaClasse"); Object obj = classe.newInstance();

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html

O

Olá

eu fiz como vc me disse

Class classe = Class.forName(“pacote.MinhaClasse”);
Object obj = classe.newInstance();

porem como faço agora pra converter a classe retornada q esta do tipo OBJECT para o real tipo dela
exemplo de um problema…

Class classe = Class.forName(“JPanel”);
Object obj = classe.newInstance();

se eu for inserir a instancia “obj” em um frame vai da problema pq ela não é do tipo component e sim do tipo object…deu pra saca minha duvida?vlw

Criado 31 de outubro de 2006
Ultima resposta 31 de out. de 2006
Respostas 4
Participantes 4