quel est votre style pour gérer les gui, évènement

quel est votre style pour gérer les gui, évènement - Java - Programmation

Marsh Posté le 26-09-2003 à 19:22:59    

quel est votre style pour gérer les gui, évènement?
 
il y a des personnes qui prèfère la manière de jbuilder et cie pour gérer les gui et évènement (niveau code) d'autre non...
 
et vous? (avec exemple svp)


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 26-09-2003 à 19:22:59   

Reply

Marsh Posté le 27-09-2003 à 15:43:52    

tout a la main :o

Reply

Marsh Posté le 27-09-2003 à 18:12:26    

veryfree a écrit :

tout a la main :o


+1, par contre je déroge au MVC par flemme, en incluant l'ActionListener à la vue. ça donne des trucs comme :
 

Code :
  1. newItem.addActionListener(this);


---------------
Le site de ma maman
Reply

Marsh Posté le 27-09-2003 à 18:51:12    

Cherrytree a écrit :


Code :
  1. newItem.addActionListener(this);




moi je fais plutot des inners classes private pour ce genre de cas... (même si c'est rare que je fasse des GUI)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 27-09-2003 à 21:18:55    

benou a écrit :


moi je fais plutot des inners classes private pour ce genre de cas... (même si c'est rare que je fasse des GUI)


ça m'arrive aussi. L'implémentation de MVC dans Swing ne m'a jamais convaincu de toutes façons.


---------------
Le site de ma maman
Reply

Marsh Posté le 27-09-2003 à 21:56:00    

en meme temps, MVC c'est pas necessairement LA réponse à tout. en outre, l'existence meme d'UN pattern mvc est sujet à controverse, et il semble que chacun y aille de son interpretation de ce truc :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 27-09-2003 à 22:42:39    

C'est la réponse actuelle, jusqu'à ce qu'on trouve mieux. Autant le  MVC2 des webapps me convient assez, autant Swing, j'ai l'impression que vue et contrôleur sont livrés ensemble.


---------------
Le site de ma maman
Reply

Marsh Posté le 28-09-2003 à 20:03:03    

Cherrytree a écrit :

autant Swing, j'ai l'impression que vue et contrôleur sont livrés ensemble.


 
 :heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-09-2003 à 21:03:35    


tout à fait.


---------------
Le site de ma maman
Reply

Marsh Posté le 29-09-2003 à 00:50:07    

Cherrytree a écrit :


tout à fait.


en meme temps, c'est le meme qui nous sort

Cherrytree a écrit :


+1, par contre je déroge au MVC par flemme, en incluant l'ActionListener à la vue. ça donne des trucs comme :
 

Code :
  1. newItem.addActionListener(this);




 
 
faudrait savoir :o


Message édité par the real moins moins le 29-09-2003 à 00:50:31

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-09-2003 à 00:50:07   

Reply

Marsh Posté le 29-09-2003 à 01:05:39    

the real moins moins a écrit :


en meme temps, c'est le meme qui nous sort
 
 
 
faudrait savoir :o


Par flemme je ne me casse plus le cul à déporter mon contrôleur parce que tel que c'est contruit, une partie du contrôleur, le contrôleur par défaut fourni par les vues Swing, reste justement dans les-dites vues. J'aime pas. Par flemme également, je ne mets plus le contrôleur de côté car le surcoût en code (passage de paramètres) rend la maintenance plus difficile, au contraire de que l'on voudrait, donc.
 
Arrêtez de me traquer. :o


Message édité par Cherrytree le 29-09-2003 à 01:06:04

---------------
Le site de ma maman
Reply

Marsh Posté le 29-09-2003 à 01:30:52    

Cherrytree a écrit :

j'ai l'impression que vue et contrôleur sont livrés ensemble.

ça tombe bien, c'est le but. Le contrôleur est adapté à la vue (because affichage du contrôleur).

Reply

Marsh Posté le 29-09-2003 à 09:36:34    

nraynaud a écrit :

ça tombe bien, c'est le but. Le contrôleur est adapté à la vue (because affichage du contrôleur).


 
bin oui [:spamafote]
 
cherrytree, qu'est ce que tu nous fais là? :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 29-09-2003 à 09:40:55    

DarkLord a écrit :


 
bin oui [:spamafote]
 
cherrytree, qu'est ce que tu nous fais là? :o


Un cake ? Quand je me serai remis aux GUI, j'essayerai d'expliciter mon désarrois du pattern MVC Swing.


---------------
Le site de ma maman
Reply

Marsh Posté le 29-09-2003 à 09:46:58    

ca m'étonne que Taiche ait toujours pas débarqué  :whistle:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-09-2003 à 10:07:14    

Les IHM, sapu :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 29-09-2003 à 10:14:07    

kadreg a écrit :

Les IHM, sapu :o


 
comment reconnaitre le linuxien, tome 1
 
(C koi MVC ? :O)

Reply

Marsh Posté le 29-09-2003 à 10:48:32    

benou a écrit :

ca m'étonne que Taiche ait toujours pas débarqué  :whistle:  


Laisse-moi le temps, bordel :o J'ai toujours pas le Net, chez ouam :o
Sinon ba comme veryfree, j'fais tout à la main et en SWT :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 01-10-2003 à 14:39:29    

os2 a écrit :

quel est votre style pour gérer les gui, évènement?
 
il y a des personnes qui prèfère la manière de jbuilder et cie pour gérer les gui et évènement (niveau code) d'autre non...
 
et vous? (avec exemple svp)


Personnellement, j'ai un objet ne dérivant de rien qui gère un composant, par exemple :

Code :
  1. public class View
  2. {
  3.   private JPanel component;
  4.   public View(ListModel model)
  5.   {
  6.     JList list = new JList(model);
  7.     ...
  8.     this.component = new JPanel();
  9.     this.component.add(list);
  10.   }
  11.   public Component getComponent()
  12.   {
  13.     return this.component;
  14.   }
  15. }


 
Pour les listener, c'est toujours à coups de classes anonymes :

Code :
  1. newItem.addActionListener(new ActionListener()
  2. {
  3.   public void actionPerformed(ActionEvent e)
  4.   {
  5.     ...
  6.   }
  7. });


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 14:49:32    

Pourquoi ta classe View n'étend pas JPanel ?


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 15:10:47    

Parce que tout ce que j'en souhaite, c'est qu'elle me crée elle-même son composant en lui spécifiant éventuellement les modèles ou autres objets dont elle aurait besoin. Je me limite à en récupérer un pour l'afficher, sans savoir a priori ce qu'elle est exactement. Je ne vais pas plus loin. Donc je n'ai pas besoin d'étendre un JPanel.
Je ne sais pas si c'est correct au niveau design, alors toute remarque est la bienvenue. :hello:


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 15:15:23    

Krueger a écrit :


Je ne sais pas si c'est correct au niveau design, alors toute remarque est la bienvenue. :hello:


Ben, je préfère faire un
 

Code :
  1. public class View extends JPanel {
  2.     public View() {
  3.         super();
  4.         initComponents();
  5.     }
  6. }


Code :
  1. View view = new View();
  2. frame.getContentPane().add(view);


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 15:27:31    

Cherrytree a écrit :


Ben, je préfère faire un
 

Code :
  1. public class View extends JPanel {
  2.     public View() {
  3.         super();
  4.         initComponents();
  5.     }
  6. }


Code :
  1. View view = new View();
  2. frame.getContentPane().add(view);




 
et c toi qui chie sur MVC en swing? Vu l'utilisation que tu en fais, je suis pas trop étonné [:mlc]
 
:hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 01-10-2003 à 15:38:10    

Cherrytree a écrit :


Ben, je préfère faire un
 

Code :
  1. public class View extends JPanel {
  2.     public View() {
  3.         super();
  4.         initComponents();
  5.     }
  6. }


Code :
  1. View view = new View();
  2. frame.getContentPane().add(view);




 
Dans ton cas, rien n'empêche la classe C qui utilise ton objet View d'appeler quelques méthodes spécifiques à un JPanel qu'il a héritées. Du coup, si un jour tu décidais de changer de composant (mettre ton JPanel dans un JScrollPane ou utiliser un JSplitPane par exemple), la classe précitée devrait être revue.
Dans mon cas, je limite l'interfaçage entre C et l'objet View. S'il faut paramétrer le JPanel de View, c'est à View de le faire et non C. Ça limite les problèmes si C est développée par quelqu'un d'autre et que je décide de modifier complètement l'implémentation de View.


Message édité par Krueger le 01-10-2003 à 15:38:48

---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 15:42:44    

DarkLord a écrit :


 
et c toi qui chie sur MVC en swing? Vu l'utilisation que tu en fais, je suis pas trop étonné [:mlc]
 
:hello:


What's the matter with you?
 
Qu'est ce qui ne te plait pas ? Tu ferais comment ?


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 15:45:33    

Krueger a écrit :


 
Dans ton cas, rien n'empêche la classe C qui utilise ton objet View d'appeler quelques méthodes spécifiques à un JPanel qu'il a héritées. Du coup, si un jour tu décidais de changer de composant (mettre ton JPanel dans un JScrollPane ou utiliser un JSplitPane par exemple), la classe précitée devrait être revue.
Dans mon cas, je limite l'interfaçage entre C et l'objet View. S'il faut paramétrer le JPanel de View, c'est à View de le faire et non C. Ça limite les problèmes si C est développée par quelqu'un d'autre et que je décide de modifier complètement l'implémentation de View.


Vu comme ça. En même temps, tous les composants d'interface graphique Swing étendent de JComponent, en fait je suis pas sûr que ce soit une bonne idée de se couper de cette filiation. ça doit être utile. [:meganne]


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 15:59:20    

Cherrytree a écrit :


What's the matter with you?
 
Qu'est ce qui ne te plait pas ? Tu ferais comment ?


 
bin tu mélanges tout avec l'héritage que tu veux faire [:mlc]
soit, laisse tomber :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 01-10-2003 à 16:07:00    

DarkLord a écrit :


 
bin tu mélanges tout avec l'héritage que tu veux faire [:mlc]
soit, laisse tomber :o


+1, sans le [:mlc]
:D
 

Cherrytree a écrit :


Vu comme ça. En même temps, tous les composants d'interface graphique Swing étendent de JComponent, en fait je suis pas sûr que ce soit une bonne idée de se couper de cette filiation. ça doit être utile. [:meganne]


J'ai pas vu de méthode Swing prenant un JComponent en paramètre, sinon il doit y en avoir très peu. Alors autant utiliser un Component, plus générique. ;)


Message édité par Krueger le 01-10-2003 à 16:08:31

---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 16:25:14    

DarkLord a écrit :


 
bin tu mélanges tout avec l'héritage que tu veux faire [:mlc]
soit, laisse tomber :o


Je ne suis pas d'accord. Deux fois. D'abord que tu me laisses dans mon ignorance. Ensuite avec ton point de vue. Les éléments type JPanel, JScrollPane, JTextField... sont des vues, je ne vois en quoi en faisant héritant mon composant View de JPanel, je suis à côté de la plaque. Non, décidément je ne vois pas et je veux comprendre.


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 16:25:50    

Krueger a écrit :


Alors autant utiliser un Component, plus générique. ;)


Au temps pour moi, l'idée reste la même.


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 16:29:42    

En plus j'apprends à programmer à toutes les nouvelles recrues. Si j'enseigne des conneries, mes connaissances, mes croyances, doivent être corrigées au plus vite. S'il vous plait. :sweat:


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 16:30:38    

La vue n'est pas forcément un objet graphique. Elle peut se servir (agrégation/délégation)  d'élément graphiques, mais rien n'oblige à ce qu'elle en soit un (héritage).
 
et même d'un côté, avoir un objet View sur lequel tu peux appeler les méthodes de JPanel, c'est assez étrange. Ta vue de devrait être capable de faire (méthodes) que ce que tu as prévu qu'elle puisse faire.
 
Maintenant, c'est vrai qu'on afit souvent un héritage de JPanel parce que c'est pratique et que ca permet de mettre ette vue dans un autre context graphique, mais pourgarder une vision purement objet-théoricienne, c'est pas très logique.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-10-2003 à 16:47:19    

Néanmoins, il n'y a pas de mal d'hériter d'un JPanel pour apprendre à l'utiliser et ne pas s'embêter avec ces histoires de connectivité et de cohésion (c'est comme ça qu'on les appelle, non ?). Il faut juste ne pas oublier de corriger le tir en vue d'un projet plus poussé.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 17:00:12    

Krueger a écrit :

Il faut juste ne pas oublier de corriger le tir en vue d'un projet plus poussé.


 
ou bien si on veut faire du vrai MVC ...
 
> Cherrytree, je n'ai rien de particulier contre ton approche mais pour un gars qui critique le MVC utilisé dans SWING, je te trouve un peu gonflé vu comment tu l'utilises ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 01-10-2003 à 17:16:26    

Krueger a écrit :

Néanmoins, il n'y a pas de mal d'hériter d'un JPanel pour apprendre à l'utiliser et ne pas s'embêter avec ces histoires de connectivité et de cohésion (c'est comme ça qu'on les appelle, non ?). Il faut juste ne pas oublier de corriger le tir en vue d'un projet plus poussé.


Je débarque. ça doit être des concepts importants mais je n'en ai jamais entendu parler. Un lien ?


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 17:18:20    

Cherrytree a écrit :


je n'en ai jamais entendu parler.


+1
 
moi je dis qu'il bluffe ! [:dawa]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-10-2003 à 17:27:31    

DarkLord a écrit :


 
ou bien si on veut faire du vrai MVC ...
 
> Cherrytree, je n'ai rien de particulier contre ton approche mais pour un gars qui critique le MVC utilisé dans SWING, je te trouve un peu gonflé vu comment tu l'utilises ...


Ecoute, j'ai lu des centaines de pages sur Swing, j'ai fouillé Core Java 2 (tomes 1 & 2), Core JFC, Core Swing Advanced Programming, Beginning Java 2... sans compter les classes Swing que je me suis farci pour saisir le fonctionnement interne. J'ai analysé le code, j'ai synthétisé les pratiques des gens qui ont écrit les bouquins, les classes et ça donne... ma putain de manière. Alors tu comprends, le temps que j'ai investi, ce n'est pas rien. C'est considérable au contraire, et en fait ce n'est pas grand-chose, je ne sais, à vrai dire, pas créer un composant texte capable de gérer la coloration de quelques mots clés.
 
Et la je me retrouve devant trois personnes, trois puits de sciences qui savent un truc que je ne sais pas. Je bave, je piaffe... mais excuse moi encore d'insister : je veux vraiment savoir comment tu fais. A ce stade, je me fiche pas mal d'être gonflé.


---------------
Le site de ma maman
Reply

Marsh Posté le 01-10-2003 à 17:35:34    

Cherrytree a écrit :


Ecoute, j'ai lu des centaines de pages sur Swing, j'ai fouillé Core Java 2 (tomes 1 & 2), Core JFC, Core Swing Advanced Programming, Beginning Java 2... sans compter les classes Swing que je me suis farci pour saisir le fonctionnement interne. J'ai analysé le code, j'ai synthétisé les pratiques des gens qui ont écrit les bouquins, les classes et ça donne... ma putain de manière. Alors tu comprends, le temps que j'ai investi, ce n'est pas rien. C'est considérable au contraire, et en fait ce n'est pas grand-chose, je ne sais, à vrai dire, pas créer un composant texte capable de gérer la coloration de quelques mots clés.
 
Et la je me retrouve devant trois personnes, trois puits de sciences qui savent un truc que je ne sais pas. Je bave, je piaffe... mais excuse moi encore d'insister : je veux vraiment savoir comment tu fais. A ce stade, je me fiche pas mal d'être gonflé.


 
Quand tu comprendras que c'est le personnage que je critique et pas la méthode, ca ira déjà mieux ;)
 
La seule chose qui me dérange, c'est que tu critiques la façon dont SWING utilise MVC alors que dans le même temps tu l'utilises mal (benou t'as déjà expliqué pourquoi)
 
Personnellement je n'ai pas *la* solution sinon je me serai fait une joie de la transmettre (je n'ai d'ailleurs jamais dit que je l'avais d'ailleurs).
 
relis mes posts et tu verras où je voulais en venir.
 
Edit:
 

Citation :


autant Swing, j'ai l'impression que vue et contrôleur sont livrés ensemble.


 
vu ta solution c'est pas étonnant [:ula]
 
Re-Edit: je te chercher hein si t'avais pas compris :D


Message édité par darklord le 01-10-2003 à 17:37:48

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 01-10-2003 à 17:40:01    

Cherrytree a écrit :


Je débarque. ça doit être des concepts importants mais je n'en ai jamais entendu parler. Un lien ?


Je n'ai pas de lien. Je te ferais un petit copié-collé (ce serait plutôt un recopié :D) de mes cours de génie logiciel ce soir.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 01-10-2003 à 17:40:18    

(en réponse à cherry)
 
mais nan !!!!!
 
comme je te le disais c'est purement thérorique à la con ! Quand tu penses à l'Objet Vue d'une application, ce n'est pas "logique" de le concevoir en le faisant hériter de JPanel, c'est tout.
 
Maintenant si pour des raisons de réutilisabilité, d'implémentation, de cohérence avec le reste de l'appli, tu trouves qu'il faut le faire hériter de JPanel, et ben juste fais le. C'était une remarque conceptuelle.
 
Enfin ca, c'est juste mon avis en arrivant très tard dans le post. C'est peut être pas ce que voulais dire Dark ...
 
Je ne me permetrais jamais de mettre en doute tes connaissances sur Swing alors que c'est un domaine que je connais vraiment très mal ...


Message édité par benou le 01-10-2003 à 17:40:38

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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