Eu usei o Java Swing para alguns aplicativos de desktop. Mas eu não usei muito outras estruturas de GUI, então não posso compará-las.
Definitivamente, existem algumas coisas que eu gosto no Swing e outras que não, mas essa é a situação com quase tudo.
Quais são as maiores desvantagens da estrutura da GUI do Java Swing?
frameworks
gui
swing
Jonas
fonte
fonte
Respostas:
Você precisa ter o java instalado em algum lugar. Isso é verdade para todas as estruturas da GUI, é claro, mas o java tem a percepção de um gorila de 2 toneladas. Ele ficou muito melhor, mas aqueles primeiros dias de applets java deixaram muitas pessoas desapontadas. Se você precisar apenas executar o seu aplicativo, há muita manutenção para mantê-lo atualizado com patches de segurança e similares. Todo mundo precisa ter o Flash para o youtube, o .Net framework é instalado nos bastidores e todo mundo tem o javascript ativado no navegador. Java é geralmente uma coisa extra a se fazer.
Embora seja meio que escreva uma vez, execute em qualquer lugar, você ainda acha que o Mac OSX não tem essa coisa nova que você deseja usar ou que um cliente se recusa a atualizar seu mandrake linux após o JRE 1.4.
Como desenvolvedor, você precisa pensar em segmentação. E é de uma maneira complicada, pois a multi-threading é possível, mas o swing finge que tudo é de thread único. Porém, metade das bibliotecas que você utiliza possui algum grau de multi-threading e assume que você conhece o invokeLater EDT e isso força muitas lições da maneira mais difícil.
A experiência de swing não se transfere facilmente para outros tipos de desenvolvimento de interface do usuário. Por exemplo, se você é um gênio nas tabelas em .css, será completamente enganado por Jtables, renderizadores, editores etc.
Em geral, o principal problema com o Swing é que ele não fez jus à forma como foi comercializado. É uma tecnologia perfeitamente adequada para muitos casos de uso, mas os primeiros 5 ou 6 anos foram repletos de implementações terríveis e applets atrozes. E agora é tecnologia antiga - na Web 3.0 ou o que for.
Tudo isso dito, eu gosto do Swing e acho que os profissionais geralmente superam os contras quando você precisa do que ele oferece. No entanto, a experiência na Web é tão onipresente agora que muitos usuários terão mais facilidade com um aplicativo da Web do que o aplicativo swing mais incrível. E existem aplicativos Swing incríveis por aí, mas eles não parecem ser populares.
fonte
Jonas,
O Swing generaliza sua arquitetura subjacente para fornecer uma experiência de usuário neutra à plataforma. O único componente pesado (fornecido pelo sistema operacional) é o contêiner JFrame e o restante é praticamente manipulado pelo Swingit. O AWT, por outro lado, pede ao sistema operacional para desenhar todos os seus componentes da interface do usuário, o que significa que é mais rápido de várias maneiras, pois você usa os componentes da interface do usuário nativos específicos para o sistema operacional. O SWT tenta alcançar um meio termo, para vários componentes padrão, como botões e etiquetas (que estão disponíveis na maioria dos sistemas operacionais), permite que o sistema operacional lide com eles e para outros componentes especializados, o SWT cuidará da criação para você.
Dito isto, posso descrever os inconvenientes.
(1) Como o kit de ferramentas cria e renderiza os componentes para você, em vez de solicitar ao sistema operacional, você não aproveita a velocidade dos componentes internos fornecidos pelo sistema operacional.
(2) A interface do usuário não é particularmente atrativa, pois parece estranha para a maioria das plataformas de sistema operacional em relação à aparência e ao uso que você usa.
(3) Alguns dos gerenciadores de layout, como GridBadLayout etc., poderiam ser mais simplificados. Eu perdi a conta do número de projetos em que trabalhei onde as pessoas envolveram o GridBagLayout em algum código personalizado para obter uma maneira mais simples de usá-lo.
Eu recomendo que você escreva um aplicativo simples no AWT, Swing e SWT e compare as abordagens de desenvolvimento e o produto final entre todos eles, depois revise os vários comentários feitos por outros desenvolvedores e decida qual deles funciona melhor. Eu trabalho com o Swing há muitos anos e costumava não gostar do SWT, mas percebi que o Swing é muito mais complicado do que precisa quando comparado a outras estruturas existentes.
fonte
O swing é lento (desempenho ruim), difícil / desajeitado de usar (em comparação com muitos outros) e não parece muito bom, de fato muito ruim, em algumas plataformas.
fonte