Sou desenvolvedor web de dia e estou pensando em criar meu primeiro aplicativo de desktop real. A idéia é criar uma ferramenta que automatize uma tarefa muito repetitiva em um aplicativo Web em que nenhuma API esteja disponível.
Eu sei que quero usar Java. Eu o usei antes para coisas na Web, conheço bem a sintaxe e quero que o aplicativo seja multiplataforma o mais fácil possível.
Onde não tenho tanta certeza é se devo usar SWT ou Swing. Como meu público-alvo principal usa o Windows, quero parecer o mais nativo possível lá. Linux e Mac devem funcionar, mas a aparência não é tão importante aqui.
Então, quais são os argumentos a favor e contra cada UI Framework, Swing ou SWT?
Obrigado.
PS: Eu desenvolvo no Windows usando o Eclipse. Mas estava pensando em brincar com o Netbeans.
Respostas:
Prós Swing:
Contras Swing:
Prós SWT:
Contras SWT:
fonte
Uma coisa importante a considerar é que alguns usuários e alguns revendedores (Dell) instalam uma VM de 64 bits no Windows de 64 bits e não é possível usar a mesma biblioteca SWT em VMs de 32 e 64 bits.
Isso significa que você precisará distribuir e testar pacotes diferentes, dependendo de os usuários terem uma Java VM de 32 ou 64 bits. Veja esse problema com o Azureus, por exemplo, mas você também o possui com o Eclipse, onde até o momento as compilações na página de download inicial não são executadas em uma VM de 64 bits.
fonte
pro swing:
Mas, no final das contas, eu não sugeriria usar swing 'puro' ou swt ;-) Existem várias estruturas de aplicativos para swing / swt out. Olha aqui . Os maiores players são netbeans (swing) e eclipse (swt). Outra boa estrutura poderia ser griffon e um bom 'conjunto de componentes' é o pivô (giro). Griffon é muito interessante porque integra muitas bibliotecas e não apenas oscila ; também pivô, swt, etc
fonte
Eu usaria o Swing por alguns motivos.
Já existe há mais tempo e teve mais esforço de desenvolvimento aplicado a ele. Portanto, é mais provável que o recurso seja concluído e (talvez) tenha menos bugs.
Há muita documentação e outras orientações sobre a produção de aplicativos de alto desempenho.
Se você deseja criar um aplicativo muito rico em recursos, consulte o NetBeans RCP (Rich Client Platform). Há uma curva de aprendizado, mas você pode montar aplicativos agradáveis rapidamente com um pouco de prática. Não tenho experiência suficiente com a plataforma Eclipse para fazer um julgamento válido.
Se você não deseja usar todo o RCP, o NetBeans também possui muitos componentes úteis que podem ser extraídos e usados independentemente.
Mais uma palavra de conselho: analise os diferentes gerenciadores de layout. Eles me tropeçaram por um longo tempo quando eu estava aprendendo. Alguns dos melhores nem sequer estão na biblioteca padrão. As ferramentas MigLayout (para Swing e SWT) e JGoodies Forms são duas das melhores na minha opinião.
fonte
Eu escolheria swing apenas porque é "nativo" para java.
Além disso, dê uma olhada em http://swingx.java.net/ .
fonte
Para seus requisitos, parece que o resultado final será o uso do Swing, pois é um pouco mais fácil começar e não tão integrado à plataforma nativa quanto o SWT.
Swing geralmente é uma aposta segura.
fonte
Pergunta interessante. Eu não sei muito bem o SWT para se gabar (ao contrário do Swing e do AWT), mas aqui está a comparação feita no SWT / Swing / AWT.
http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm
E aqui está o site onde você pode obter tutoriais sobre basicamente qualquer coisa no SWT ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm )
Espero que você tome uma decisão correta (se houver decisões corretas na codificação) ... :-)
fonte
Se você planeja construir aplicativos funcionais completos com mais de um punhado de recursos, sugiro pular direto para o uso do Eclipse RCP como estrutura.
Se seu aplicativo não crescer muito ou seus requisitos forem únicos demais para serem tratados por uma estrutura comercial normal, você poderá saltar com segurança com o Swing.
No final do dia, sugiro que você tente as duas tecnologias para encontrar a que melhor combina com você. Como o Netbeans vs o Eclipse e o IntelliJ, não há a resposta correta absoluta aqui e as duas estruturas têm suas próprias desvantagens.
Pro Swing:
Pro SWT:
fonte
Uma coisa a considerar: Screenreaders
Por alguns motivos, alguns componentes do Swing não funcionam bem ao usar um leitor de tela (e o Java AccessBridge para Windows). Saiba que diferentes leitores de tela resultam em comportamentos diferentes. E, na minha experiência, o SWT-Tree tem um desempenho muito melhor que o Swing-Tree em combinação com um leitor de tela. Assim, nosso aplicativo acabou usando os componentes SWT e Swing.
Para distribuir e carregar a biblioteca SWT adequada, você pode encontrar este link útil: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
fonte
O SWT foi criado como uma resposta à lentidão do Swing na virada do século. Agora que as diferenças de desempenho estão se tornando insignificantes, acho que o Swing é uma opção melhor para seus aplicativos padrão. O SWT / Eclipse possui uma estrutura legal que ajuda com muitos códigos de placas de caldeira.
fonte