Bonjour à tous,
Dans le cadre du projet, je dois réaliser un petit tableur 10 lignes x 6 colonnes en Java avec un menu permettant de demander à l’utilisateur les actions à réaliser : afficher le tableur, ajouter une valeur à une cellule, effacer la valeur dans une cellule, importer un fichier et insérer ses valeurs dans les cellules, enregistrer le tableur dans un fichier.
J’ai créé différentes classes : Programme (celle qui exécute le programme), Grid (représente le tableur), Node (la cellule), Value (la valeur d’une cellule), Tests (permet de tester le programme en fonction de différentes valeur de cellule), UseCalcGUI et CalcGUI permettant de créer une interface graphique à partie de JFrame pour afficher le tableur.
J’ai mis les différents fichiers de code, la consigne plus détaillée et autres informations du projet sur mon repository Github : https://github.com/henryd02/spreadsheet_java
J’ai actuellement plusieurs points bloquants :
- Le programme n’accepte pas que l’utilisateur rentre du texte, exemple des références de cellules, ex : (1,1) et des formules du type Moy((1,1), (2,3)). Pour le moment, mon programme n’accepte que des valeur numérique pour le moment, c’est surement du à ma gestion de l’erreur mais je n’arrive pas à trouver comment le résoudre et qu’il accepte du texte :
catch(NumberFormatException e){
System.out.println("Error: Not a number");
}
- Écrire le code pour importer les valeurs d’un fichier dans le tableur. La méthode loadFile permet d’importer un fichier table.txt dont Chaque valeur de cellule est séparée par un & et chaque ligne du fichier correspond à une ligne du tableur. Je pense que je vais parser le fichier ligne par ligne, faire un slip sur le caractère & et enregistrer les valeurs dans un array list. Puis insérer ces valeurs dans les cellules du tableur à la ligne correspondante. Je pense créer une méthode assignCells( array list) dans la classe Grid afin de réaliser ces opérations, est ce que cela vous semble correcte ?
- Calculer le résultat des formules dans les cellules. Exemple, si la valeur de la cellule (2,2) est (1,1) + 2, il faut calculer le résultat en remplaçant (1,1) avec sa valeur numérique. Idem pour les autres opérations arithmétiques : +, -, *, /, Somme, Moy. Pour le déclenchement des opérations, je pense faire une loop dans la classe Program qui va parcourir toutes les cellules du tableur et pour chaque cellule, parser le contenu et détecter s’il y a s’agit d’un opération avec un opérateur (+, -, *, /, Somme, Moy) et si c’est le cas, réaliser le calcul. Pour le calcul, je pense créer les méthodes add, substract, multiply, divide, Sum, Mean dans la classe Grid. Est ce que cela vous semble judicieux ?
- Représentation graphique de la table. Comment connecter le tableur avec l’interface graphique UseCalcGUI et CalcGUI afin d’afficher les valeurs dans le layout de la fenêtre. Je ne suis pas encore très à l’aise avec JFrame et donc j’ai un peu de mal à comprendre comment avoir accès aux parties du Layout. Est ce que vous auriez des idées ?
La suite du projet demande de gérer les dépendances entre cellules (point 4.2 de la consigne) en créant un cycle dans les références de cellules lorsqu’une cellule est modifiée et également de désigner les références de cellules de manière relative (point 5 de la consigne, le point 3 n’est pas demandé). Je ne suis pas encore à ces étapes.
Je vous invite à aller faire un tour sur mon repository Github (https://github.com/henryd02/spreadsheet_java) afin de comprendre plus en détail le projet, regarder la structure du code et me dire ce que je pourrais améliorer,
Je reste à disposition si vous avez besoin d'informations complémentaires,
Bien cordialement,
Henry
Partager