Eu vejo que muitos programadores em Java, programam para web. Gostaria de saber se alguém aqui já viu/programou um Sistema de grande porte, em Desktop, usando Swing? :roll:
SISTEMA grande em Swing
20 Respostas
Já vi uns ERP em Swing, sistemas de monitoramento de redes (grandes), sistemas de home broken, jogos, etc.
Defina “grande porte”. Eu estou dando manutenção numa aplicação Swing com mais ou menos 1300 classes.
:shock: K…
creio q este pra mim esse sistema q vc citou, é muito grande
Minha aplicação atual tem uma parte “grande” que é via Applet/Swing… muito legal alias.
O sistema dos Correios é feito com Swing. Detalhe, é o mesmo sistema para as agências do Brasil inteiro.

Esse sistema dos Correios é bem feinho para ser uma aplicação Swing - foi usado só o feijão-com-arroz do Swing - mas acho que priorizaram a funcionalidade sobre a aparência (além disso tem de ser uma aplicação não muito pesada, para poder rodar em máquinas não muito boas).
É feinho mesmo, mas achei bem funcional, os atendentes fazem tudo (tudo mesmo) rapidinho só pelo teclado, claro que já vi uns pangaré usando o mouse hehe 
Pense bem nos requisitos da interface da sua aplicação.
Se o usuário espera funcionalidades como as encontradas em aplicações Delphi e VB centradas em bancos de dados, você vai penar para implementar várias coisas, e penar um pouco mais ainda para ser produtivo e não gerar milhares de linhas de códigos redundantes.
Vai precisar de LOVs? (listas de valores em comboboxes para associar dados de outras tabelas)
Vai precisar auto-completar coisas em formulários? (digitou código X apareceu nome Y)
Vai precisar controlar estados de formulários? (edição, pesquisa, inserção, etc)
Vai precisar controlar a quantidade máxima de caracteres que entram nos campos? (por causa da limitação de uma coluna varchar por exemplo)
Vai precisar poder cancelar a edição de um registro e voltar os dados anteriores para a tela?
Vai precisar controlar a entrada de caracteres em campos numéricos e de valores monetários para que eles fiquem sempre bem formatados? (o mesmo para os casos de datas)
Como vai ser a validação dos dados?
A interface vai ser internacionalizada?
Eu já desenvolvi um sistema enorme com centenas de formulários feitos em Swing que precisou ter TODOS estes requisitos que eu comentei e mais um monte de outras coisinhas. Tive insônia, chorei, arranquei uns fios de cabelo, e trabalhei como um burro de carga por muitos e muitos meses. Foi uma fase negra na minha carreira. Mas o resultado final foi muito bom.
Você precisa detalhar até o último fiapo todos os requisitos da sua interface. Tudo nos mínimos detalhes antes de começar. E o seu cliente precisa estar bem ciente do escopo. Porque qualquer coisa que você tiver que acrescentar depois pode gerar um volume muito grande trabalho, mesmo com todos os modernos recursos de refactor dos IDEs.
Hoje estou trabalhando em outra aplicação Swing, bem menor, mas com requisitos também bem complexos.
Se quiser ajuda personalizada, envie um private e negociamos.
:shock: K…
creio q este pra mim esse sistema q vc citou, é muito grande
Nem tanto. Umas 30 telinhas, apenas. É que eu citei o número total de classes, com classes de negócio, de estrutura do design, etc, etc.
Eu acho legal reforçar o ponto do gcobr:
O foco das telas criadas em Swing é bem diferente do foco do VB e do Delphi, mas o que o cliente geralmente espera é o que ele encontra no VB e no Delphi, que é o que ele já está acostumado. Então, se você não sabe de tudo que você vai precisar de antemão e não prepara uma API que satisfaça isso a contento, você irá se deparar com um pesadelo de manutenção.
Outro problema atual do Swing é que o uso dele atualmente não é tão grande quanto o uso de interfaces web, então todo o suporte que você normalmente consegue em aplicações web (frameworks, documentações, dicas, listas de boas práticas, respostas em fóruns) serão reduzidos quando você mexe com Swing.
Olá gcobr, eu sou iniciante em Java, fiz um curso Básico aqui na minha cidade, mas estou estudando/pesquisando muito sobre a linguagem e como usá-la corretamente.
Aqui no trabalho, utilizamos Delphi para aplicações desktop, e Delphi for .net para aplicações para internet. Creio q aqui no trabalho seria dificil uma migração para Java, pelo fato dos “boss” terem uma mentalidade que vai de encontro com o que POO propõe.
Eu estou fazendo um projeto simples, com swing para ampliar meu conhecimentos, e justamente constatei o que vocês disseram, como dificuldade de implementar os requisitos visuais.
Por isso q fiquei com essa dúvida, se há algum caso de sucesso com swing.
Fico muito grato com sua resposta.
É claro que é melhor fazer uma aplicação desktop em Swing que em HTML + JSP.
A menos que você queira fazer uma aplicação desktop multiusuário e que você não tenha requisitos especiais como impressão em formulários contínuos, imprimir em impressoras fiscais, ler de teclados especiais, etc. (Mesmo imprimir um relatório é um sufoco
- você acaba usando o formato PDF )
É que participei do projeto onde justamente se quis fazer uma aplicação desktop em HTML usando um browser, e vários problemas foram enfrentados devido ao fato que é difícil fazer o browser (e ainda qualquer browser) fazer essas coisas que foram citadas.
Por isso q fiquei com essa dúvida, se há algum caso de sucesso com swing.
Quanto a isso fique tranquilo, ao redor do mundo ai existem centenas de grandes cases.
Tem muitos projetos no SourceForge também, baixe uns fontes pra vc ir dando uma olhada num programa já “maduro”, ver como as coisas funcionam e tal.
Por curiosidade … de onde vc é?
Não seria “… que vai contra o que a POO propõe.”? Pois se vai de encontro, Java é o caminho!
Como outros já comentaram. Existem muitos casos de sucesso.
Recomendo também algumas coisas:
- Use o JDK 6, pois ele traz muitas melhorias no Swing e uma integração bem melhor com a plataforma nativa
- Frequente o www.javadesktop.org
- Conheça o trabalho do www.jgoodies.com
- Fique atento as tendências mais atuais de desenvolvimento de interfaces gráficas
- Evite implementar aplicações MDI com Swing (coisa que todo programador VB e Deplhi faz)
Uma forma legal de trabalhar é criar um grande JFrame que contém um menu vertical, tal como em uma aplicação Web, e um toolbar. Esse JFrame contém vários JPanels (você pode usar ou não um JTabbedPane); não use MDI porque é difícil controlar as telas em Swing.
Para o menu vertical você pode pegar algum que esteja pronto (já que o Swing não tem um menu desses pronto no pacotão da Sun). Procure um que funcione direitinho, ou então use um JTree.
Aproveitando o gancho do tópico, qual a proporpoção atualmente de aplicações Web x Desktop?
Desenvolvimento de aplicativos para Desktop estão diminuindo?
Não sei se estão diminuindo, porque eu pelo menos acho que já passou um pouco o boom de “tudo via browser pq eu li que é o futuro”.
Eu to num projeto BEM GRAANDEEEE em Swing!!!
Na verdade acho que nao passou o boom das aplicações web, mas sim o boom de achar que tudo quanto é sistema deve ser feito pra web. Pô, eu ja trabalhei em uma carrada de sistemas que os negos achavam que o sistema deveria se comportar exatamente como uma aplicação desktop. Eles esqueciam que estamos dentro de um ambiente muito diferente de um ambiente que roda local…
Na verdade, to querendo muito fazer alguma coisa no mundo desktop, eu nunca fiz nenhum sistema significativo nessa área.
Abraço a todos.
Sem dúvida tamanho é bem relativo. O GFP (gfd.sf.net) no source forge tem cerca de 56.000 linhas em 350 classes.
Em meu trabalho cuido de um framework Swing com aplicações que somadas dão mais de 9.500 classes e mais de 1 milhão de linhas de código.
Acredito que há espaços (requisitos) tanto para aplicações web quanto desktop.
