GUI's complexas em Java

4 respostas
R

Fala pessoal,

estou programando um software que deve ser um tanto complexo, e possuir diversas funcionalidades. A lógica de negócio já está pronta, mas estou com uma certa dificuldade na parte da interface gráfica. Sei utilizar diversos recursos do Swing, inclusive criar um JFrame com diversos componentes, mas não sei por onde começar a programar uma verdadeira GUI para um software.

Não sei como deve ser a lógica orientada a objeto de uma interface gráfica complexa, entre outros fatores. Sendo assim, pergunto a vocês se vocês sabem de alguma referência online de construção de uma GUI para um software complexo.Ou seja, não procuro como criar JTables, JPanels, etc. Procuro como juntar tudo isso numa GUI bem programada e de fácil manutenção.

Abraços a todos,
Rafael March.

4 Respostas

P

Opa cara,

Não sei se você concorda com esse jeito, mas eu faço o seguinte:

Crio um arquivo sendo o componente swing a ser criado, e atribuio os comportamentos. Tipo:

JBAceitar.java -> Aqui eu import javax.swing.JButton e coloco tudo relativo a ele. Então crio um metodo get pra retornar o botão.

depois eu vou no construtor do form que desejo, e é só sair pro abraço adicionando.

sergiotaborda

Realmente não é simples. A melhor dica é pensar em composição. O Swing usao padrão Composite para compor os vários componentes ( valha a redundancia). Abuse disso.
Os componentes gráfico são classes como quaiquer outras. Podem ser herdadas, extendidas, alteradas, etc… abuse disso.

Vc tem um painel com um conjunto de componentes para fazer a funcionaldiade X e vc usa a funcionaldiade X muitas vezes ? Então faça o painel uma nova classe e reutilize. Ou seja, faça componentes costumizados.

Estas são as principais dicas para criar a UI.
Para controlar a UI dê uma olhada no padrão MVP : Model-View-Presenter ( não confundir com MVC)

Ednelson

Sugiro a leitura de dois artigos do Martin Fowler que dão o caminho das pedras de como domar a lógica da apresentação. São estes:

- GUI Archtectures

- Organizing Presentation Logic

Caso simpatize com o pattern Presentation Model, sugiro procurar um framework de binding para lhe ajudar a botar em prática a teoria. De frameworks de binding há varias alternativas, dentre elas:

  • Genesis.
  • JGoodies Binding
  • Beans Binding (JSR 259)

Para contrução da view há o Netbeans com o plugin Matisse, que possibilita a criação de GUI de forma visual e que ainda tem o benefício de ter integração com Beans Binding citado anteriormente.

Ainda para construção de View, porém de uma abordagem oposta ao Matisse, há o SwingBean, onde vc define GUI através de arquivos XML.

Só mais um comentário, vc não citou o tamanho da aplicação, porém dependendo das dimensões deste é interessante considerar o uso de uma Rich Client Plataform, como a NetBeans Plataform ou Spring RCP.

C

rafaelmarch:
Fala pessoal,

estou programando um software que deve ser um tanto complexo, e possuir diversas funcionalidades. A lógica de negócio já está pronta, mas estou com uma certa dificuldade na parte da interface gráfica. Sei utilizar diversos recursos do Swing, inclusive criar um JFrame com diversos componentes, mas não sei por onde começar a programar uma verdadeira GUI para um software.

Não sei como deve ser a lógica orientada a objeto de uma interface gráfica complexa, entre outros fatores. Sendo assim, pergunto a vocês se vocês sabem de alguma referência online de construção de uma GUI para um software complexo.Ou seja, não procuro como criar JTables, JPanels, etc. Procuro como juntar tudo isso numa GUI bem programada e de fácil manutenção.

Abraços a todos,
Rafael March.

O que tem de complexo no seu software? possui acesso remoto? lida com fluxos de processo? RIA?

Geralmente algum tipo de menu é o que funciona, nao pode parecer complexo para o usuario.

Criado 25 de junho de 2008
Ultima resposta 25 de jun. de 2008
Respostas 4
Participantes 5