Tem um método num aplicativo que estou mexendo que recebe um JPanel ou um awt.Container como parâmetro, no entanto preciso pegar os componentes que estão dentro deste painel (ou container).
Até ai blz! Só usar o método getComponents() porém, preciso somente dos componentes que possuem uma determinada anotação…
E ai? como fazer? Alguém tem alguma idéia? o máximo que consigo a mais é um objeto da classe que chamou o método.
A classe inteira eu consigo pegar de boa, preciso apenas do que dentro do panel… ou do container… Abaixo um exemplo do metodo que tem aqui:
privatevoidbuilder(Containercontainer){/** * Como pegar os elementos do container que estejam com uma * determinada annotaion? */for(Componentc:container.getComponents()){/** * Como saber se 'c' tem a annotation XYZ por exemplo? */}}
a unica coisa que tenho alem disso, é que a classe que tem este metodo tem um referencia pra classe que invoca os seus metodos (um Object).
wolmirGarbin
To meio sem tempo mas veja este codigo
//Pega as anotações dos camposField[]fields=classe.getFields();//pega todos os atributos da classe - pode ser metodosfor(Fieldfield:fields){//dentro do for pegua as anotações Annotation[]annotationsFields=field.getDeclaredAnnotations();for(Annotationannotation:annotationsFields){if(annotationinstanceofColumn){//Verifica o tipo da anotação.. Columncolumn=(Column)annotation;select.append(" "+column.name());}if(annotationinstanceofJoin){Joinjoin=(Join)annotation;joins.append(" "+join.type()+" "+prop.getProperty("select.join")+" "+field.getName());}//se for verificar outra anotação vai aqui}}
Espero que ajude… Valeu!
gregorioarthur
Obrigado cara, mas eu sei pegar as os campos anotados… normalmente.
So precisaria saber como fazer isso apenas recebendo um JPanel ou um Container como parametro.