RSS RSS feed | Atom Atom feed

NetBeans 6.0 - Novidades #7





Dando continuidade , mais uma novidade !!!!

Suporte a Beans Binding - JSR 295

Provavelmente por ser lider desta JSR o novo NetBeans já vem com suporte ao rascunho da mesma... que por sinal, por si só é meio chatinha de lidar.... mas com o suporte da IDE fica simplesmente mágico construir aplicações Desktop... neste post vou tentar passar uma maneira de fazer uma coisa simples , porem "desafiadora" em Swing... uma app que lista dados em uma JTable e faz atualização das mesmas nos edits dos campos...

Vejamos abaixo , a classe que vai ser populada na JTable... a tradicional e divertida CLASSE PESSOA !!!! hehee:




Após criar um JForm eu vou adicionar um um componente para guardar essas minhas "pessoas" e o escolhido foi.... foi..... UMA LISTA EH CLARO !!!!! para tal eu coloco ele na parte other components do meu FrameTeste , assim eu ganho o gerenciamento do matisse quanto a criacao e declaracao de codigo.



Aqui eu coloco qual "bean" quero adicionar em "Other Components"



Veja, ele adiciona o list1 , e é ele que vai deter a lista de pessoas da nossa JTable !



Nas propriedades da list1 eu vou parametrizar ela para uma lista de Pessoas , ou seja List<Pessoa>, Delphi Style não ?




Após isso eu defino a forma de inicialização (criação) desta minha lista , eu escolhi usar um ArrayList ;)



Obviamente , ArrayList não está importada... então aqui podemos ver alguns melhoramentos do editor de codigo... outra coisa interessante , veja que o netbeans está gerenciando um codigo "pessoal" meu... deixando ele travado e recriando a medida do necessario quando existem alteracoes... bem legal... o matisse novo está bem mais tranquilo quanto a a isso:





Agora vou "popular" esta lista... pois senao não vai ter nenhum dado em tela... ae não vale né ? então eu fiz um "forzinho" para criar 10 Dyegos e adicionar eles a lista list1<Pessoa>... note que eu usei a propriedade "Post-Creation Code" da lista list1 , isso porque vou querer que fique gerenciado pelo netbeans tambem:




Agora beleza , tenho uma lista de pessoas que tem 10 Dyegos e quero jogar na JTable... entao é bem simples... primeiro jogo a minha Jtable dentro do meu JForm e com o botão direito escolho "Bind->Elements". Lembrando que esta é uma JTable NORMAL... nao tem nada de uma JTable extendida do NetBeans... a JSR 295 se adapta aos componentes padroes... e isso eh nota 10 !



Aqui eu seleciono a fonte dos dados... pode ser até uma conexao com o banco de dados (ae o netbeans cria toda a estrutura da JPA) , mas neste caso , vamos selecionar a nossa list1 !



Após a seleção , veja que as propriedades da nossa classe pessoa aparecem... qual é  a mágina ? Lembra da List<Pessoa> pois eh... esse <Pessoa> diz muito ao NetBeans... ehehe... note que estamos apenas clicando e selecionando... muito pouco codigo digitado... por enquanto APENAS O OBVIO foi realmente codificado manualmente...



Nas propriedades avançadas... note ali que a sincronia entre a TELA e os POJOS dentro da lista list1 é totalmente feita automatica e voce pode definir este modo... veja os conversores e os validadores... todos estes gerenciados pela JSR 295... é praticamente um JSF para Swing... e é nesse ponto que afirmo... note como a JSR 295 não te prende a IDE... isso NADA é feito pelo NetBeans, ele usa tudo da JSR 295... entao... funciona em qualquer IDE... o que ele faz MESMO é dar SUPORTE a esta JSR... o resto é só alegria :)




Ao apertar OK minha Jtable fica com uma cara bem legal :)





Agora eu adiciono dois JTextFields um para o nome outro para a idade... e vou fazer a magica novamente... "Bind->Text" !


Agora eu digo que o texto VEM da JTable1 (que jah recebe list1) e que eu quero o "Elemento selecionado em tela" , propriedade Nome... puts... que complicado né ? melhor eh ficar ponto Listener...(estou sendo sarcastico)



As propriedades do JTextField são praticamente as mesmas... note o "Always sync (read/write)" , muito 10... voce pode alterar no edit... que ele vai atualizar o modelo e que por sis só atualiza o Pojo....



Claro que alguns incrédulos podem falar "muito preso" , note como a edição do modelo é aberta... nome de colunas , renderer , etc... etc... lembrando que é um componente PADRAO do Swing e não algo extendido:



Por final... é dar um "run" e pronto... ai está nossa aplicação de exemplo !!!! SHOW DE BOLA !




Uma coisa interessante que deve ser observada, é que nada disso é "mágico" , é codigo de tela gerado pelo NetBeans seguindo a spec do JSR 296... e qual a vantagem dessa salada toda ser "gerencidada" por ele ? simples... a JSR 295 esta em constante mudanca... e se as regras do jogo mudarem... o NetBEans vai ser capaz de gerar novamente o codigo no novo padrão que for definido... apenas abrindo e fechando o form ( lembrando que o netbeans guarda tudo como metadata no .form e o codigo travado é gerado denovo a todo momento ).

Definitivamente PONTO para o NetBeans !


Re: NetBeans 6.0 - Novidades #7

ola, tudo bem? Estou trabalhando com o netBeans 6.0 Beta + java 6.0 + MySql 5.0, e estou achando show de bola, mas estou precisando utilizar um converter ou validation, ex tenho campo no banco com integer, 0 = Fisica, 1 = Jurídica, como faria isso con JRS 295 ? vc tem algum tutorial, ja utilizou esse converter, ou validation? se puder me ajudar ficarei grato! ate mais! vlw!

Re: NetBeans 6.0 - Novidades #7

Gostaria muito de saber como você abriu o 'Costumizer Dialog' que você mostra configurando as colunas, título, e tals... Uso o NB 6.1 e não vejo onde abrir esse Dialog.

Adicione um comentário Envie um TrackBack