Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2901 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Implémentation des méthodes dans un fichier séparé, possible?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Implémentation des méthodes dans un fichier séparé, possible?

n°1576722
welcominh
Posté le 19-06-2007 à 12:31:01  profilanswer
 

Bonjour a tous,

 

je suis actuellement en stage. Je programme un logiciel mais l'interface graphique est entièrement fait avec une libraire graphique (QT) et avec un éditeur graphique.
J'implémente actuellement les méthodes appelées par les listeners. Mais j'aimerais pouvoir les implémenter dans un fichier séparé, car le fichier java qui contient la
classe est écrasé a chaque fois que je veux modifier l'interface graphique.
Est-ce possible d'implémenter en dehors de ce fichier?

 

Merci pour votre aide


Message édité par welcominh le 19-06-2007 à 12:31:32

---------------
Direct-download.com, le moteur de recherche pour Mega
mood
Publicité
Posté le 19-06-2007 à 12:31:01  profilanswer
 

n°1576723
deadalnix
Posté le 19-06-2007 à 12:37:02  profilanswer
 

Probleme de conception : java est fait pour avoir la structure MVC.
 
Ton listener fait partie de ton controleur et la fenetre de ta vue. Tu n'as normalement pas de probleme de melange a ce niveau. java fournis peut d'outils de facon a "forcer" le programmeur a faire quelque chose de propre, profites en ;)

n°1576735
deadalnix
Posté le 19-06-2007 à 12:58:58  profilanswer
 

Si j'ai bien compris c'est l'outils de creation graphique qui reconstruit la classe de bout en bout quand on modifie le viseul, et donc ecrase un eventuel code qu'on aurait ajouté dans ladite classe.
 
Le truc c'est que ce code devrait se trouver dans le controleur et non la vue.

n°1576737
zapan666
Tout est relatif
Posté le 19-06-2007 à 12:59:14  profilanswer
 

deadalnix a écrit :

java est fait pour avoir la structure MVC.


et depuis quand ?

 


(sinon, regarde si ton editeur graphique permet d'ajouter du code)

 

(Uhm, c'est quoi comme editeur en passant ?)

Message cité 1 fois
Message édité par zapan666 le 19-06-2007 à 13:00:39

---------------
my flick r - Just Tab it !
n°1576741
deadalnix
Posté le 19-06-2007 à 13:02:55  profilanswer
 

zapan666 a écrit :

et depuis quand ?
 
 
(sinon, regarde si ton editeur graphique permet d'ajouter du code)
 
(Uhm, c'est quoi comme editeur en passant ?)


 
http://java.sun.com/products/jfc/t [...] hitecture/  
 
C'est sun qui le dit pas moi [:aloy]

n°1576757
welcominh
Posté le 19-06-2007 à 13:37:07  profilanswer
 

deadalnix a écrit :

Si j'ai bien compris c'est l'outils de creation graphique qui reconstruit la classe de bout en bout quand on modifie le viseul, et donc ecrase un eventuel code qu'on aurait ajouté dans ladite classe.

 

Le truc c'est que ce code devrait se trouver dans le controleur et non la vue.


Oui c'est ca l'outils de creation graphique (qui est QT designer en passant) reconstruit la classe. Sinon a part ca, c'est quoi le controleur et la vue? J'ai deja fait un peu de java, mais ces termes ne me disent rien.

 

L'UI ne construit que la classe. C'est a moi ensuite de créer les méthodes et les connecter ensuite au signaux de l'interface graphique.
Donc forcément si l'UI reconstruit la classe il écrase le fichier précédent et le code que j'y ai ajouté.


Message édité par welcominh le 19-06-2007 à 13:37:50

---------------
Direct-download.com, le moteur de recherche pour Mega
n°1576759
zapan666
Tout est relatif
Posté le 19-06-2007 à 13:38:47  profilanswer
 


Citation :

A Swing Architecture Overview


Swing != Java


---------------
my flick r - Just Tab it !
n°1576764
welcominh
Posté le 19-06-2007 à 13:48:02  profilanswer
 

L'idée de la classe fille me parait intéressante.
 
Pour mon probleme, ca me semble simple pourtant  :??: .
Moi j'ai appris a coder une classe en faisant classe= attributs privées + méthodes publiques. J'y ajoute des classes internes pour la gestion d'évenements.
 
L'UI génère la classe sans la gestion d'évènements. Moi je rajoute ce code.
Hop j'ai oublié de rajouter un ptit logo a ma fenetre (par ex), je revais dans mon UI je rajoute ca vite fait. Je save et génère le code associé a cette nouvelle interface.
Et paf ca m'écrase mon ancien fichier, celui où j'ai rajouté mon code de gestion d'évenements.  
A moins d'enregistrer le nouveau fichier sous un nom différent et de reprendre le code de gestion d'évenments et le recoller dedans... Mais cette manip me gêne sur le long terme. Perte de temps, et risques  
d'erreurs...
 
Voila j'espere avoir été plus clair  :)


---------------
Direct-download.com, le moteur de recherche pour Mega
n°1576777
welcominh
Posté le 19-06-2007 à 14:08:20  profilanswer
 

Je ne suis pas sûr à 100% qu'on s'en serve comme ca. Ptet qu'on est censé avoir fini la partie graphique à 100% avant d'attaquer le code, ce qui rendrait plus logique l'utilisation.
 
Mais dans mon cas je tatonne vu que je ne connais pas tres bien cette librairie (je débute). La classe est purement graphique oui. QT est fait pour ca: rendre indépendant de l'implémentation derriere, si j'ai bien compris.
Mettre les listeners une couche plus bas, tu sous-entends une classe fille donc? Je vais essayer ca.


---------------
Direct-download.com, le moteur de recherche pour Mega
n°1576961
deadalnix
Posté le 19-06-2007 à 17:49:34  profilanswer
 

welcominh a écrit :

J'y ajoute des classes internes pour la gestion d'évenements.


 
Le voila ton soucis, tu sepra pas la vue et le controleur.
 
Le mvc (modele vue controleur) c'est une architecture dans ton programme.
 
Ton modele designe les données, les objets agissant dans ton programme. Il est distinc de la vue et du controleur.
 
La vue, c'est la peinture. C'est une couche qui sert a afficher les elements de ton modele.
 
Le controleur, c'est les interactions utilisateur.
 
Ce modele permet de dissocier les morceau important de ton programme, c'est par exemple grace a ca que des jeu peuvent marcher en directX et openGL, ou bien que l'on peut changer l'interface/l'ergonomie d'un programme sans tout recoder dedans.
 
Ca me parrait quand meme tres etrange que le programme qui dessine la fenetre efface toute la classe a chque coup. Meme si le code ne devrait pas se trouver ici, c'est vachement etrange.
 
zapan666 > Bin forcement si tu fait pas une appli graphique je vois pas pourquoi tu t'embete avec une vue et un controleur. mais franchement, jouer sur les mots comme ca ca sert pas a grand chose.
 
Et (anticipation) je sait qu'on est aps obligé de faire une interface swing en java, mais la aussi . . .

mood
Publicité
Posté le 19-06-2007 à 17:49:34  profilanswer
 

n°1577081
welcominh
Posté le 20-06-2007 à 09:31:50  profilanswer
 

deadalnix a écrit :

Ca me parrait quand meme tres etrange que le programme qui dessine la fenetre efface toute la classe a chque coup. Meme si le code ne devrait pas se trouver ici, c'est vachement etrange.


Merci beaucoup pour tes explications deadalnix, tu éclaires beaucoup ma lanterne sur le modele MVC, que j'utilisais déjà plus ou moins (disons moins  :D) dans mes applis.
La méthode de la classe fille qui implémente les listener sépare bien vue et controleur, si j'ai bien compris. Après niveau rigueur de codage, j'en suis bien moins sur mais si vous avez une autre méthode je suis preneur.
 
Pour en revenir a la citation, QT designer ne génère pas de code petit à petit. (Par ex je programme sous Eclipse, je rajoute un élement graphique avec disons Visual Editor et ca me rajoute les bons bouts de code au bon endroit. Apparemment QT designer ne fonctionne pas comme ca, si c'est à ca que vous faisiez allusion).
En fait je ne fais que "dessiner" mon interface. Nulle part question de code. Ce n'est qu'a la fin, quand j'ai fini, que je fais Fichier > save. Ca me sauvegarde dans un fichier d'extension ".ui". Et la il faut que je compile ce fichier avec l'utilitaire "JUIC" de QT pour obtenir un fichier ".java".


---------------
Direct-download.com, le moteur de recherche pour Mega
n°1577110
welcominh
Posté le 20-06-2007 à 10:32:06  profilanswer
 

Le listener écoute un signal envoyé par l'interface graphique. L'interface graphique c'est juste du "dessin" et des signaux.
La classe mère c'est juste du dessin, que du dessin.


---------------
Direct-download.com, le moteur de recherche pour Mega

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Implémentation des méthodes dans un fichier séparé, possible?

 

Sujets relatifs
reconnaissance de texte dans un fichier imageDéfilement d'un fichier texte dynamique de gauche à droite
Comment verrouiller un fichier avec flockComment acceder un fichier sur le reseau avec un programme exe
Une telle structure est elle possible en CSS?[Javascript] inclure un fichier .js dans un fichier .js
Installation Hardware fichier inf besoin d'aideExtraction d'url depuis un fichier
Supprimer des doublons d'un fichier en conservant la dernière ligne[Résolu]Programme supprimant les commentaires d'un fichier C
Plus de sujets relatifs à : Implémentation des méthodes dans un fichier séparé, possible?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR