pb de eventHandling avec swing, comment faire dans ce cas ? - Java - Programmation
Marsh Posté le 13-04-2004 à 01:14:38
ta classe CancelEventHandler devra obligatoirement implémenter l'interface ActionListener et donc forcément la méthode qui est dedant (actionPerformed). Il faudra aussi lui mettre un constructeur qui prend un Ryg en paramètre. Pareil pour les autres question du même type.
Dialog est une classe AWT, je vois pas pourquoi utiliser ça en premier niveau dans une application swing.
De même qu'il est complètement inutile de sous-classer JFrame et Dialog, donc autant pas le faire. Puisque c'est une connerie.
Marsh Posté le 13-04-2004 à 02:04:13
Code :
|
merci nraynaud
Marsh Posté le 13-04-2004 à 07:47:20
nraynaud a écrit : |
pour ma culture, c'est quoi le problème d'étendre JFrame ?
Marsh Posté le 13-04-2004 à 08:48:44
benou a écrit : |
Une instance d'une sous-classe de JFrame est une JFrame on peut donc lui appliquer tout ce qu'on fait à JFrame, donc par exemple :
Tu prends ton instance, tu vires sont ContentPane,
tu lui mets un nouveau ContentPane
Et voilou, tu viens de détruire le bordel.
Donc on ne sousclasse pas à moins d'avoir une bonne raison de le faire. En swing, il n'y a quasiment jamais de bonnes raisons de sous-classer, tout est "pluggable" dans tous les sens et c'est fait exprès.
Ce mécanisme de swing est assez déroutant pour les débutants : on parle d'objet alors on doit faire des classes alors chaque objet du système doit avoir sa propre classe ... C'est faux. On fait pas des classes pour trier du code par ordre d'idée ce sont les méthodes qui servent à ça.
Marsh Posté le 13-04-2004 à 09:09:00
ok. je suis assez d'accord avec toi ... ca parait logique.
mais la plupart des tutoriaux et autres exemples de GUI font de l'héritage de JFrame ...
Marsh Posté le 13-04-2004 à 09:16:02
benou a écrit : mais la plupart des tutoriaux et autres exemples de GUI font de l'héritage de JFrame ... |
oui, je suis encore à la recherche d'une explication qui ne fasse pas entrer en ligne de compte des hallucinogènes. Les héritages sont très propres dans le JDK et en vrac dans les tutos, je ne comprends pas.
Marsh Posté le 14-04-2004 à 03:27:44
j ai refais le Gui du jeu, mais j ai un petit problem avec la creation d objet eventHandler.
exemple
Code :
|
doi je passer comme parametre lobjet GameGUI? ou le frame ?
si je veus que QuitEventHandler(this) ferme le programme ?
Code :
|
bref ma class QuitEventHandler nest surement pas bonne.
Marsh Posté le 14-04-2004 à 06:00:17
j ai passe JFrame an protected et j ai fais ca :
Code :
|
maintenant sa marche, est ce que c est la bonne methode ?
Marsh Posté le 14-04-2004 à 08:49:26
la bonne méthod ca aurait été d'ajouter une methode close à GameGui et d'appeler cette méthode dans le actionListener
Marsh Posté le 14-04-2004 à 09:43:06
benou a écrit : la bonne méthod ca aurait été d'ajouter une methode close à GameGui et d'appeler cette méthode dans le actionListener |
ah we bonne idee, par contre je suis coince a un endroit..
en suivant le model donne, j ai une class PrimaryGameController, qui entre autre, a une varible "rand" qui stock un nombre pris au hasard.
La class PrimaryGameController s occupe de coordonne toutes les autres classes.
elle a une mehode gameStart qui cree un nomvre "rand" et affiche la fenetre GUI.
je veus que mon bouton "give up" affiche dans un label de GUI, la variable "rand"
Code :
|
mais pour cela je dois creer un autre objet PrimaryGameController
puis appeler la methode get.rand(), et c est faut vu que si je cree cet objet la variable rand nest pas initialiser.
sinon je suis obliger de passer en parametre du constructeur de GameGUI , l objet PrimaryGameController, de meme pour GiveUpEventHandler (GameGUI g, PrimaryGameController pgc) ? c est moche et lourd il dois y avoir autre chose a faire a la place.
Marsh Posté le 14-04-2004 à 11:09:37
nraynaud a écrit : oui, je suis encore à la recherche d'une explication qui ne fasse pas entrer en ligne de compte des hallucinogènes. Les héritages sont très propres dans le JDK et en vrac dans les tutos, je ne comprends pas. |
ben peut etre que c'est plus simple a mettre en place et a comprendre et que dans 90% des cas "basique" tu fais rien de fabuleu avec JFrame et ca marche très bien
Marsh Posté le 14-04-2004 à 13:06:23
EpoK a écrit : |
C'est pas du tout plus simple de faire une classe que de faire une simple méthode, qui peut être statique.
Mais je pense avoir trouvé une explication plausible hier : pour ceux de l'élite qui le font, c'est pour avoir des javabeans.
Evidement les débutants, c'est par mimétisme (des tutos) et/ou par conception simpliste de l'objet.
Marsh Posté le 12-04-2004 à 16:07:42
,
je demarre un peu en java et surtout en gui. Dans mon premier program "fenetre" j utilsais quelque chose comme ca :
Notre prof nous as donne un projet a faire en suivant une sorte de modele. J ai quelque question as ce sujet que j aurai bien pus lui demander mais la, on as 2 semaine de break et aucune reponse possible.
voila le modele de gui a utiliser, les questions sont dans le code
je suis vraiment coince avec le tryNewNumberButton.addActionListener(new NewNumberHandler(g)); et derives.
Merci pour votre aide.