Pergunta

Meu aplicativo Java não é muito grande, mas eu gostaria de fazê -lo da "maneira certa". Procurando sugestões para não fazer uma grande bagunça ...

Estou usando o swing, a estrutura do aplicativo Swing e o banco de dados H2.

É um aplicativo de quadro único com guias diferentes. A maioria das guias refletirá alguns aspectos dos dados no banco de dados. Alguns deles serão capazes de mudar isso. Algumas guias terão botões ou ações que serão redirecionadas para outra guia ... é basicamente isso.

Gostaria de manter as coisas limpas, bastante portáteis e flexíveis (pode permitir desativar algumas guias, por exemplo ou adicionar algumas facilmente).

Aqui estão as perguntas:

1) Como ter as guias "atualizadas" quando o conteúdo do banco de dados muda? Implementar alguma interface do ouvinte? Devo definir essa interface ou já existe algo que posso reutilizar?

2) Como "vincular" as diferentes guias para que seja fácil pular de um para outro (e pode ter que levar algum argumento para configurar a guia de destino para a "exibição" direita)

3) Se eu definir alguma preferência com alguns filtros em outra parte do aplicativo, como compartilhar essas configurações com todo o aplicativo?

E quando pergunto "Como", quero dizer "qual é a melhor maneira" ... eu já posso fazer isso funcionando ... apenas procurando a ferramenta certa para usar, o padrão de design ou algo assim.

Foi útil?

Solução

Se estiver usando o swing, você pode usar o painel com guias para ter um layout tabular.

Implementar um ouvinte (como você está planejando). Dê uma olhada na interface observável em Java.

Você pode implementar uma singleton (por exemplo, a classe PreferenceManager) para manter a preferência e acessá -la em todo o aplicativo para acessar propriedades.

Outras dicas

Existem diferentes estratégias de construção de aplicativos da GUI. Aqui algum artigo sobre.

Você realmente deseja um modelo de push onde o servidor precisa manter uma conexão com todos os clientes e atualizá -los tudo quando algo mudar? Isso é viável com um punhado de clientes, mas rapidamente se torna problemático. Provavelmente é melhor usar um modelo de tração, onde o cliente manualmente (periodicamente?) Pede atualizações. Essa também é uma boa maneira de usar o bloqueio otimista com um campo Último Modificado no banco de dados. Tente uma atualização, se ele mudou desde a última vez que você recarregou, avise o usuário e permita que eles substituam / mesclam.

Quanto ao swing em geral, as melhores práticas é levar em consideração tudo o que não está relacionado à GUI nas classes principais ('lógica de negócios') que disparam eventos. Registre todas as suas classes de swing como o ouvinte de eventos apropriado e atualize a GUI adequadamente (swingutilities.invokelater () é seu amigo aqui).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top