Durf
Messages postés2Date d'inscriptionmardi 29 avril 2014StatutMembreDernière intervention29 avril 2014
-
Modifié par cs_Julien39 le 1/05/2014 à 20:13
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
1 mai 2014 à 20:01
Bonjour à tous,
voilà j'ai commencé l'apprentissage du JAVA. J'avais quelques notions en programmation mais n'ayant jamais pratiqué assidument je suis reparti de zéro pour être sur. Bref, c'est pour la petite histoire...
Venons-en au vif du sujet ! Je m'exerce en réalisant la traditionnelle calculatrice pour m'assurer de ma compréhension des JFrame, JButton et autre JPanel. Mais je me pose une question sur l'architecture du projet. Par cela, j'entends :
Pour créer ma calculatrice je créé une méthode avec un type de bouton perso et une pour mon écran (label).
La convention (si il y en a une ?) est-elle de plutôt créer une class externe (exemple un package nommé interface et deux classes, une bouton et une ecran) ou tout mettre dans ma classe Main ?
Alors je sais que pour une minuscule projet comme mon TP calculatrice ça ne change rien mais c'est histoire de prendre de bonne habitude.
Pour la solution "classe externe" je crois y voir l'intérêt de pouvoir modifier plus simplement la methode et avoir une lisibilité plus grande.
Pour la solution "tout dans le Main" j'y vois la solution de simplicité en terme de programmation car pour le moment je galère à essayer de mettre en place la premier ;-p.
Merci a tous par avance de vos précieux retours et conseils.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020369 29 avril 2014 à 09:37
Salut,
La décomposition en classe de ton projet t'appartient, il n'y a pas de "meilleure" solution, je peux t'en proposer une :
- Une classe Abstraite Bouton qui étend JButton
- Une classe BoutonChiffre qui étend Bouton
- Une classe BoutonOperateur qui étend Bouton
- Une classe Ecran qui étend JLabel
- Une classe Calculatrice qui étend JPanel
Calculatrice est un singleton accessible partout dans le code avec la méthode getInstance().
Les classes Bouton servent à modifier les valeurs de l'écran et envoient dans le singleton calculatrice les éléments qui permettront de faire le calcul.
La classe Ecran affiche
C'est peut être un peu complexe si tu commence mais cela te donnera une idée de ce que tu peux faire.
Tu peux opter pour une décomposition plus simple ou prendre celle là. Si tu ne comprend pas certains choses, dis le moi.
Durf
Messages postés2Date d'inscriptionmardi 29 avril 2014StatutMembreDernière intervention29 avril 2014 29 avril 2014 à 13:34
Tout d'abord, merci beaucoup pour ces précisions.
@cs_Julien39 :
Ok j'avoue que dans mon idée première se rapprochait de ta solution à ceci près que j'avais une classe Bouton sans "sous-classe". Mais ta proposition a le mérite d'être (en tout cas pour moi) explicite.
Si je comprends bien la classe Abstraite Bouton définit les paramètres graphiques ou visuels du bouton en gros la forme, taille, fond ect...
Et les deux autres classe bouton la création des différents bouton en fonction de leur utilisation (chiffre ou opérateur) mais en utilisant la méthode de création de la classe Abstraite.
Ai-je bien compris ?
Donc en gros je je le voulais c'est possible de faire un programme même énorme totalement dans le main ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020369 1 mai 2014 à 20:01
Oui, tu as bien compris l'idée.
Tu peux toujours tout faire dans une main, et même redéfinir des fonctions statiques dans la classe principale.
Mais dans ce cas là, tu ne fais pas de la programmation objet. Ce n'est ni bien ni mal, c'est un choix.
Mais tu risques d'avoir un code énorme et assez peu lisible, les objets Swing sont très clairement faits pour être utilisés avec une décomposition en classes de ton code, et donc, ca risque d'être très lourd à gérer.