Conception d'une calculatrice (objet) [Résolu]

Durf 2 Messages postés mardi 29 avril 2014Date d'inscription 29 avril 2014 Dernière intervention - 29 avril 2014 à 09:01 - Dernière réponse : cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention
- 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.

Cordialement.

Durf
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 29 avril 2014 à 09:37
2
Merci
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.

Bon courage.

Merci cs_Julien39 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Durf 2 Messages postés mardi 29 avril 2014Date d'inscription 29 avril 2014 Dernière intervention - 29 avril 2014 à 13:34
0
Merci
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 ?

@Pharaonju :
J'utilise Eclipse !


Cordialement

Durf
Commenter la réponse de Durf
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 1 mai 2014 à 20:01
0
Merci
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.
Commenter la réponse de cs_Julien39
Pharaonju 7 Messages postés lundi 11 juin 2007Date d'inscription 29 avril 2014 Dernière intervention - 29 avril 2014 à 09:51
-2
Merci
Bjr. Trouve tois un IDE comme Netbeans. c'est plus facile.

--
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 29 avril 2014 à 11:42
Quel rapport avec la question ?
Commenter la réponse de Pharaonju

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.