Preciso escrever um aplicativo GUI de plataforma cruzada para processar (em vários threads) e visualizar quantidades bastante grandes de dados. Idealmente, o aplicativo deve ser relativamente rápido e ter boa aparência.
A interface do aplicativo consistirá em um widget de tabela, um widget de árvore e um widget de desenho de figura personalizado. O usuário poderá modificar os dados de qualquer um desses widgets e as alterações deverão ser refletidas imediatamente nos outros widgets.
Naturalmente, estou planejando usar o MVC. No entanto, normalmente faço toda a minha programação GUI em C ++ / Qt e tenho uma exposição muito limitada ao Java. Então, eu realmente aprecio qualquer conselho sobre como organizar esse aplicativo em Java. Em particular, devo usar o Swing ou JavaFX? Quais widgets você escolheria para o trabalho? Você poderia recomendar livros / tutoriais on-line que abordem esses aspectos da plataforma Java?
Eu aprecio muito qualquer feedback. Obrigado!
(esta pergunta foi publicada originalmente no Stack Overflow , mas este site foi sugerido como um local mais apropriado para perguntar)
Vá com um padrão Model-view-apresentador . Você pode ver um bom exemplo de MVP no Swing aqui, através do projeto mvp4j .
Embora não seja o Swing, também verificaria os artigos do MVP no site da GWT Google Developers para obter mais informações sobre esse padrão e como aplicá-lo em Java; os mesmos princípios de design permanecem, independentemente da estrutura e o GWT é muito semelhante ao Swing.
Uma rápida descrição de como o MVP funciona:
Quando implementado corretamente, o MVP tornará seu aplicativo muito dissociado e permitirá que você faça modificações sem perturbar outras áreas do seu aplicativo.
Editar: com base na sua decisão de usar o JavaFX, recomendo verificar os seguintes artigos
fonte
Os widgets necessários podem ser encontrados no Swing ou no SWT . A documentação contém exemplos de componentes (Swing) ou widgets (SWT), portanto será fácil identificá-los.
O Swing é uma biblioteca GUI incluída no JDK e construída do zero. O SWT é externo e os componentes são baseados nos nativos.
Quanto ao MVC, os dois têm suporte para isso. No Swing, você tem um modelo para cada componente que praticamente fornece os dados subjacentes. O componente em si é o View e o Controller.
fonte