[JAVA] Organisation des objets d'une IHM?

Organisation des objets d'une IHM? [JAVA] - Java - Programmation

Marsh Posté le 24-04-2005 à 19:38:36    

Bonjour à tous,
 
Je dois réaliser une IHM en java consistant en une fenetre principal (JFrame) dans lequel il y a à gauche un jtree avec différents noeuds et feuilles et à droite un panel principal dans lequel s'affiche d'abord par exemple un panneau de recherche(avec une Jtable/JtexFiled et cie) sur une personne ( si on click sur le noeud personne) puis lorsqu'on click sur la selection, cela ouvre un panel d'onglet résumant les differents informations sur la personne par onglet(etat civil, adresse, ....) et avec des boutons de mises à jours des informations
 
Le problème que j'ai en fait vient de la construction de mes classes. Je ne suis pas très à l'aise avec le modéle MVC, et je ne sais pas trop comment gérer tous les listeners des boutons  sur les différents panels  que l'utilisateurs peut actionner.
Autant séparer la vue des données, ca va, mais la position du controleur n'est pas très clair?  :??:  
 
Comme mes panels sont eux même constitués de sous-panels pour la réutilisation dans d'autres vues, cela impose de faire des getPanel().getPanel()....get ...getButton()add(ActionListerne..)
dans la classe appelé lors de l'affichage des informations du panel principal de droite.
 
Cela ne me semble pas très propre,non ?
 
Bon si quelq'un arrive à me suivre et peut m'aiguiller, il est le bienvenue :)

Reply

Marsh Posté le 24-04-2005 à 19:38:36   

Reply

Marsh Posté le 25-04-2005 à 14:44:23    

pour quoi fauire un getPanel().getPanel()....get ...getButton()add(ActionListerne..)  
quand tu peux faire simplement un tonbutton.addActionListener() dans la classe ou tu crees ton button?!

Reply

Marsh Posté le 26-04-2005 à 00:57:00    

beemer a écrit :

pour quoi fauire un getPanel().getPanel()....get ...getButton()add(ActionListerne..)  
quand tu peux faire simplement un tonbutton.addActionListener() dans la classe ou tu crees ton button?!


 
oui bien sur, ca marche, mais si je met un actionListener directement sur le bouton dans sa classe, comment récupérer le listerner dans la classe qui instancie le panel avec le bouton?
 
Par exemple: Je m'explique:
j'ai une classe RechPersonne qui affiche un panel en haut pour faire une recherche, un panel avec une jtable au mileu qui affiche une liste de personne,  et un résumé des informations de la la personne en bas du panel. J'ai donc un Panel constitué de 3 sous Panel
 
on a donc:
public class RechPersonne extends JPanel
{
//je declare mes sous-panneaux
 
//object de type Jpanel avec un bouton ,JLabel et JTexField.
RechPanel _rechPanel =new RechPanel();  
 
// Oject de type JPanel affichant un titre et une Jtable dans un scrollPane
TablePanel _tablePanel =new TablePanel();
 
//Object de type Jpanel avec des JLAbel et JTextField
DetailPanel _detailPanel =new DetailPanel();
 
//j'ajoute mes panneaux au panel principal
this.add(_rechPanel,myGriBagLayout());
this.add(_tablePanel,myGriBagLayout());
this.add(_detailPanel,myGriBagLayout());
 
}
En fait, comme j'ai beaucoup de panel qui sont réutilisé dans d'autres ecrans, j'ai fait des classes d'objet de panel spécifique
 
 
Le problème est que si je declare un action listener sur un bouton du rechPanel, je suis bien obligé de faire un getButton dans la classe RechPersonne pour y ajouter un addActionListener qui va mettre à jour la Jtable, à moins de mettre le button en public dans la classe RechPanel pour être directement visible?
 
Vous me suivez là?


Message édité par filpinpin le 26-04-2005 à 00:57:38
Reply

Marsh Posté le 27-04-2005 à 09:21:39    

d'un point de vue mvc il te manque une partie importante de ta conception : les modeles
 
 

Reply

Marsh Posté le 27-04-2005 à 09:26:37    

filpinpin > ta question est trop ouverte, cependant, elle me rappelle que j'ai un tutorial à écrire ...


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 27-04-2005 à 10:34:20    


Filpinpin, tu peux aussi passer en paramètre au JButton, lors de sa création, le JPanel cible des futures actions.
 
Nicolas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed