Merci pour les réponses...
Mais après avoir lu X tutorials sur le net, et essayer de suivre vos conseils j'ai encore ENORMEMENT de mal à comprendre comment faire proprement..
Je suis arrivé à une architecture qui me parait assez correcte (car je sépare vraiment l'aspect graphique pur de l'aspect metier)
mais j'aimerai avoir votre avis please.. (vu que j'y connais rien..)
Ma future appli n'a pas une IHM très compliqué, peu d'interactions "inter-composants", C plus
sur la gestion et algorythme de graph que je vais me prendre la tete (heureusement JGraph est là.. )
J'ai donc :
1 JFrame principale composée de :
- 1 menu
- 1 toolBar
- 1 JPanel
- et X fenetre internes (chacune composée de 3 JPanel)
Ce que je comptais faire :
<> La JFrame principale (appelons là mainJFrame) appelle l'initialisation de ses différents composants et les ajoute a son ContentPane
<> les composants IHM propose des méthodes publiques pour récupérer "leurs sous-composants" (dans le cas de la JToolBar, getButtonNew(), getButtonSave()...)...
<> a la fin de l'initialisation IHM, C mainJFrame qui s'occupe des evenements...
J'ai crée des classes dédiés à la gestion des evenements du style
Code :
- public class JToolBarActionListener extends ActionListener {
-
- public static final String ACTION_NEW = "New";
- public static final String ACTION_OPEN = "Open";
- public static final String ACTION_SAVE = "Save";
-
- // reference sur la fenetre principale
- private MainJFrame mainJFrame;
-
- public JToolBarActionListener(MainJFrame mainJFrame_p) {
- mainJFrame = mainJFrame_p;
- }
-
-
- public void actionPerformed(ActionEvent actionEvent_p) {
- String actionCommand_l = actionEvent_p.getActionCommand();
-
- if (actionCommand_l.equals(ACTION_NEW)) {
- // je reprends l'exemple, je clicke sur un bouton, affichage dans JTextArea...
- mainJFrame.getJPanelStatus().appendText("New Project..." );
-
- } else if (actionCommand_l.equals(ACTION_OPEN)) {
- ...
- }
- ...
- }
- }
|
<> mainJFrame n'a "plus qu'a faire"
Code :
- JToolBarActionListener jtbaL = new JToolBarActionListener(this);
- jToolBarComponent.getButtonOpen().setActionCommand(JToolBarActionListener.ACTION_OPEN);
- jToolBarComponent.getButtonOpen().addActionListener(jtbaL);
- jToolBarComponent.getButtonNew().setActionCommand(JToolBarActionListener.ACTION_NEW);
- jToolBarComponent.getButtonNew().addActionListener(jtbaL);
|
L'initialisation des evenements risque d'etre un peu loue mais au moins, je trouve qu'elle
est centralisée (facilement retrouvable) et je sépare rlement l'aspect IHM du reste...
Maintenant, ca ne suit pas du tout (il me semble) les p atterns concernant les evenements IHM...
Votre avis please..
C vraiment pourri-pourri ou C acceptable ?? (ou lachons nou, C une idée de génie.. )
(tous les commentaires sont les bienvenus..)
D'avance merci et désolé pour ces questions facon newbie total...
Message édité par Dephi le 03-10-2003 à 11:10:39
---------------