Question

application Java Mon est pas très grand, mais je voudrais faire le « droit chemin ». Vous cherchez des suggestions pour ne pas faire un grand désordre ...

J'utilise Swing, Swing base de données Application Framework et H2.

Il est une application unique de trame avec des onglets différents. La plupart des onglets reflètent certains aspects des données dans la base de données. Certains d'entre eux seront en mesure de le changer. Certains onglets ont des boutons ou des actions qui seront redirigés vers un autre onglet ... qui est essentiellement cela.

Je voudrais garder les choses propres, plutôt portable et flexible (peut permettre de désactiver certains onglets par exemple ou ajouter un peu facilement).

Voici les questions:

1) Comment avoir des onglets « rafraîchi » lorsque le contenu change de base de données? Mettre en œuvre une interface de Listener? Dois-je définir cette interface ou il y a quelque chose que je peux réutiliser déjà existant?

2) Comment « lien » les différents onglets ensemble afin qu'il est facile de sauter de l'un à l'autre (et peut devoir porter un argument pour configurer l'onglet de destination à droite « vue »)

3) Si je mets une certaine préférence avec des filtres dans une autre partie de l'application, comment puis-je partager ces paramètres avec toute l'application?

Et quand je demande « comment », je signifie vraiment « quelle est la meilleure façon » ... Je peux obtenir que le travail déjà ... à la recherche juste pour l'outil à utiliser, modèle de conception ou tel.

Était-ce utile?

La solution

Si vous utilisez swing, vous pouvez utiliser volet à onglets pour avoir une disposition sous forme de tableau.

Mettre en œuvre un auditeur (comme vous prévoyez). Jetez un coup d'oeil à l'interface observable en Java.

Vous pouvez mettre en œuvre un singleton (par exemple de classe PreferenceManager) pour maintenir la préférence et y accéder à travers l'application d'accéder aux propriétés.

Autres conseils

Il existe différentes stratégies de construction d'application IUG. un certain article sur.

Voulez-vous vraiment un modèle push où le serveur doit maintenir une connexion à chaque client, puis les mettre à jour quand quelque chose change? Cela est possible avec une poignée de clients, mais devient rapidement problématique. Il est sans doute préférable d'utiliser un modèle de traction, où le client manuellement (périodiquement?) Demande des mises à jour. Ceci est aussi une bonne façon d'utiliser le verrouillage optimiste avec un champ last_modified dans le DB. Tenter une mise à jour, si elle a changé depuis la dernière reloaded, avertir l'utilisateur et leur permettre d'écraser / fusion.

pour Swing en général, les meilleures pratiques est le facteur que tout interfaces graphiques ne se rapportent pas dans les classes de base ( « logique métier ») que d'incendie événements exceptionnels. Enregistrez-vous toutes vos classes Swing comme l'écouteur d'événement approprié et mettre à jour l'interface appropriée (SwingUtilities.invokeLater () est votre ami ici).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top