Qual a melhor forma de fazer uma aplicação SWING?

Boa tarde, meu primeiro post e já venho com uma dúvida sobre quais as melhores tecnologias a usar :P?

SITUAÇÃO:
Existe um papel aqui na empresa onde são anotados os Registros Telefonicos (uma pessoa liga e diz que o aparelho está com problema) ai esses papeis se acumulam aqui e nunca servem para nada, pois ninguem vai pegar papel por papel para ver quais os problemas similares, quais foram as resoluções para esses problemas…ainda tem a questão de ficar sempre escrevendo o nome, o telefone, a data e coisas desse tipo.

DÚVIDA:
A ideia é fazer uma aplicação SWING para automatizar isso. Porem eu andei lendo sobre o assunto e descobri sobre JDesktopPane e JInternalFrame, ou seja, aplicações MDI. Porem um colega de faculdade ouvi um pedaço da conversa e disse que não gostava de usar essa forma de UI (User Interface) não, para ele era algo da decada passada. Entretanto ele não falou como seria a suposta UI dessa decada :).

Eu me pergunto alguem sabe? Usar a UI que eu falei antes é algo ultrapassado?

REQUISITOS:
Antes que sugiram cria a aplicação na WEB, usando AJAX, Hibernate e coisas do tipo, já digo logo de principio que sou orêia no assunto WEB, ainda estou caminhando no aprendizado desse tipo de tecnologia, porem assim que eu souber vou refazer o sistema e colocá-lo para WEB, na verdade estou pensando em criar esse sistema atual usando MVC para facilitar a migração para WEB…

E então o que me dizem geeks :)?

Para não ficar muito complicado nem muito ultrapassado (MDI, JDesktopPane e JInternalFrame são coisas que devem ser evitadas em código novo), use um único JFrame, contendo um JTabbedPane, ou se o seu sistema tem telas hierarquizadas, use um JTree como menu, e um JPanel com CardLayout ou um JTabbedPane para conter as telas (você vê só uma tela de cada vez, o que é mais que suficiente para 99,95% das aplicações). Se você precisa ver 2 ou mais telas simultaneamente, você pode usar um JSplitter.

Em um sistema Swing que estava prototipando eu fiz exatamente isso (um JTree com um JPanel usando CardLayout para conter as telas.) É bobo, mas parece Web (onde você não vê 200 telas de cada vez, uma confundindo a outra).

Cara uma dica, ou utiliza o editor de interfaces do netbeans, ou se você gosta de colocar as mãos no código (assim como eu) eu recomendaria você a utilizar o forms do JGoodies.

Vou dar uma lida sobre a dica do thingol… vc tem algum material?

Sobre a IDE que irei usar vai ser o bom e velho NetBeans :)!

Mais e mais…por favor :slight_smile:

A aplicação se fosse MDI teria dois menus e alguns sub-menus:
Principal -> Chamadas
Form de Registro de Chamadas: vai ter tres partes:
* 4 campos para filtro e potão de Pesquisar/Filtrar
* tabela com os ultimos 10 registros, botões < > para pegar mais
uma pagina, e caso ocorra algum filtro atualiza os dados (vão estar
em um banco de dados)
* botões de ação [Incluir, Exluir, Alterar], esse botões quando clicados
vão abrir uma nova tela para realizar a ação desejada.
-> Zonas
Form de Registro de Chamadas: vai ter tres partes:
* 4 campos para filtro e potão de Pesquisar/Filtrar
* tabela com os ultimos 10 registros, botões < > para pegar mais
uma pagina, e caso ocorra algum filtro atualiza os dados (vão estar
em um banco de dados)
* botões de ação [Incluir, Exluir, Alterar], esse botões quando clicados
vão abrir uma nova tela para realizar a ação desejada.

Relatorios -> Todos tipo de Relátorio

E ai como fazer isso usando JTre?

Você pode usar um JTree como se fosse um Menu e submenus que ficassem na parte esquerda da tela.

Qual a vantagem de usar o JTree como sendo um menu? Sendo que o JMenu faz isso muito bem?

Porem sobre a dica de usar o CardLayout pode me ser util sim, até mesmo usando o MDI…

Pensei em criar um InternalFrame para cada opção do meu Menu, no caso, seria um iFrameChamadas e iFrameZonas.
Depois criaria um JPanel principal para cada um desses InternalFrames, ficando panelChamadas e panelZonas, sendo que em ambos eu colocaria o layout com CardLayout…ai como nesses paneis principais eu quero colocar botões queabram outras telas, colocaria para quando clicar nesses botões ele chamava o panel determinado e adcionava esse panel ai meu panel principal…

Ex: botão Incluir do panelChamadas iria abrir o panelChamadas_Incluir que ficaria sobre o panelChamadas, mas no mesmo internal frame…ai após gravar, tenho a opção de ir novamente no menu e chamar o panelChamadas ou clicar no botão voltar e ele iria novamente chamar o panelChamadas…

O que acha?

Tentei fazer da forma que falei mas n deu certo não :slight_smile:

Ai fui voltar para como estava antes e fudeu foi tudo :slight_smile:

[quote=caio.formiga]Qual a vantagem de usar o JTree como sendo um menu? Sendo que o JMenu faz isso muito bem?
[/quote]

Eu falei JTree mas na verdade eu não usei exatamente o JTree; eu fiz um painel de botões que expandiam ou não um menu hierárquico - assim como esse menuzinho do site do GUJ que você está vendo à sua esquerda. Eu não estou falando em JMenu porque os clientes hoje em dia já viram muitas aplicações Web e agora acham que as coisas têm de ser assim em aplicações Swing também. Eu concordo que um JMenu é mais flexível, ocupa menos espaço e é mais rápido, mas clientes são clientes :stuck_out_tongue:

Tava vendo alguns materiais sobre swing e resolvi fazer a minha mini-aplicação seguindo a UI do NetBeans!

E ai sugiu uma pergunta: Aquela arvore hierarquica que é mostrada do lado esquerdo da tela no Netbeans é uma JTre? (me refiro ao local onde ficam os package, classes e tudo mais do seu projeto)

E uma outra questão é como fazer para um JTabbedPane com o incoe “x” (closable) ?

topico super interessante :smiley:

Veio o tutorial da sun sobre JTabbedPane eh muito bom. Dá uma olhada:

http://java.sun.com/docs/books/tutorial/uiswing/components/tabbedpane.html

Leia o tópico do tutorial da Sun postado acima.Só pegar a classe ButtonTabComponent que faz a mágica para vc.
RegistrosTelefonicos eh?Eu recomendo usar o JGoodies Forms Layout para lhe ajudar a construir as telas de dados(seus JPanels).Se for aquelas telas com uma centena de dados em formulário, com combos e outros, te poupará MUITO tempo de desenvolvimento.

Estava lendo sobre o JGoodies porem pelo pouco que eu lí ele é um plugin do Eclipse neh?

AI tipo, eu já fiz o meu “layout” do form, via NetBeans, já está legalzinho para o que eu tou querendof azer, porem teria necessidade de usar mesmo o JGoodies?

E se eu for usar do que eu vou precisar?

Como devo proceder?

Coloca no class paht?

Baixa alguma coisa?

Pow ninguem ai pode ajudar? sobre as dúvidas do JGoodie!?

Falando do JGoodies, é um conjunto de componentes. Que podem ser usados nas aplicações Swing.
Se estiver procurando componentes legais de uma olhada neste site http://swinglabs.org/
Alexandre

UI dessa decada WEB 2.0 Flex, openLazlo e ai vai

exemplo:
http://examples.adobe.com/flex2/inproduct/lcds/flexstore/flexstore.html