Dúvida em relação em como componentizar melhor código relacionado a interface (SWING)

4 respostas
albertongai

Olá pessoal do guj!

Estou participando de um projeto em SWING, que irá passar por umas mudanças bastante drásticas com o uso do JGoodies FormLayout e umas coisinhas a mais, só que eu estou com uma dúvida. Até que ponto eu consigo dividir o código fonte relacionado a interface em vários arquivos? Neste momento o único tipo de item que eu consigo separar são as chamadas para o listener, que em vez de criar uma inner class dentro da minha janela, eu crio uma classe implementando a interface correta.

O que eu queria seria mais ou menos assim, imaginem uma janela com muitos campos, por exemplo 3 abas com 50 campos em cada, o que eu poderia fazer para separar e facilitar a legibilidade do código? Eu conseguiria por exemplo criar as 3 abas separadas e depois acoplá-las num JFrame por exemplo? Eu sei que esta pergunta me parece estúpida, mas eu realmente não estou vendo muita saída para as chamadas classes gigantes relacionadas a interfaces do swing.

Qualquer ajuda é bem vinda.

Abraços

4 Respostas

T

Já que você está usando um JTabbedPanel, pode separar seu código em várias classes derivadas de JPanel que são inseridas nesse JTabbedPanel.
Normalmente eu faço isso para não ter 1 classe gigante.
O único problema (ou vantagem - depende do ponto de vista) é que para integrar toda essas classes é necessário ter também uma classe de controle dessas telas. Já ouviu falar de MVC?

albertongai

thingol:
Já que você está usando um JTabbedPanel, pode separar seu código em várias classes derivadas de JPanel que são inseridas nesse JTabbedPanel.
Normalmente eu faço isso para não ter 1 classe gigante.
O único problema (ou vantagem - depende do ponto de vista) é que para integrar toda essas classes é necessário ter também uma classe de controle dessas telas. Já ouviu falar de MVC?

Entendi, mas como ficariam os controllers? Seria algo do tipo: várias classes extendendo a classe JPanel, com seus campos próprios e o controller seria por exemplo o tabbedPanel ou o JinternalFrame que juntaria todas as partes mais ou menos como um container de JPanels?E sim , eu conheco perfeitamente o conceito do MVC, só que talvez pela falta de conhecimento em Swing ainda não está claro para mim a maneira correta de aplica-lo, diferentemente de sistemas na plataforma web (coisa que eu levo de letra). Inclusive no meu projeto o business logic já se encontra toda em classes do tipo service e todos os statements SQL e coisas relacionadas a bd estão nos DAOs.

albertongai

bom eu ainda estou a espera de algum exemplo, estou meio sem tempo de procurar na net então se alguém tiver alguma ideía eu agradeço. Aproveitando o gancho gostaria de saber se existe algum material sobre tuning em plataformas escritas em swing. Estou tendo alguns problemas com gerenciamento de altos volumes de dados em memória e estou apanhando pra customizar a minha aplicação…

Obrigado desde já…

[]´s

jMacaxera

Opa!! A utilização da API binding do JGoodies auxilia muito para separação de responsabilidades e testes unitários com a aplicação do padrão presentation-model.. A edição 39 da revista Java Magazine trata um artigo a respeito deste assunto. =)

Criado 26 de novembro de 2007
Ultima resposta 29 de nov. de 2007
Respostas 4
Participantes 3