IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[Débutant] Carnet D'adresse


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut [Débutant] Carnet D'adresse
    Bonjours j'ai un projet semi-personnel que je n'ai aucune idée comment faire...
    Je suis qu'un débutant en Java et je voudrais faire un programme dans lequel on entre le nom d'une personne, son numéros de Téléphone, son adresse couriel et son adresse d'où elle vie. Après avoir donné tout les données necessaire le programme sauverais les données et te ramenerais au menu principale.
    Bon le menu principale que j'ai en tête semble simple... un bouton afficher contact et un nouveau contact... le bouton afficher contact nous conduirais sur une page où tout la liste des noms des personnes y seraient et quand on cliquerais dessus un pop-up souvrirais avec les informations sur le contact.
    J'imagine que c'est très compliqué à faire... Surtout quand on est débutant c'est seulement que mes amis mon demandé de leur faire ça et j'ai trouvé que l'idée était génial et j'en suis moi même tombé pationné... simplement je ne trouve pas comment faire j'ai hate d'être bon en java!

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Bon il faut que tu divise ton projet en plusieurs parties. en gros :

    Il faut d'abord commencer par la partie métier : qu'est ce qu'une personne, qu'est ce qu'un carnet d'adresse, quelles données utiliser, quelles règles de gestion

    Ensuite faut voir comment tu assure la persistance de tes objets, c-a-d comment tu stockes les valeurs pour les avoir quand tu relance l'appli : un fichier txt, xml, une bdd ...

    Il faut évidemment faire le lien entre ces 2 aspects : lire/écrire ces données (charger, sauvegarder quoi)

    Une fois que ces 2 parties marchent (il faut les avoir testé ) tu peux enfin passer à la partie graphique. rien ne sert de commencer l'interface si les traitements sont faux, ça ne fera que compliquer le debuggage.

    T'as description du projet semble surtout basé sur le visuel. Mais je pense qu'avant de se lancer là dessus, il faut être sûr des bases du programmes (les données et les traitements). De plus ça t'aidera à créer ton interface puisque tu sauras quels objets tu utilises et ce que tu peux faire avec ...


    Donc voilà.

    Si tu as des questions sur la partie conception, n'hésite pas, on est là ...

    [EDIT] Si tu n'as jamais fait de programmation objet, je te conseille de faire quelques tutos avant pour gouter l'eau ... Parce que attention, faire une interface graphique jolie, ergonomique et rapide est loin d'être facile ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut
    plus j'essaie d'en faire plus je vois que j'essaie de faire trop...
    je suis évidament un débutant et je vais d'abord essayé de faire un programme qui demande tout simplement le nom d'une personne et ensuite le sauvegarder dans un fichier texte (.txt)

    ensuite je vais me faire une interface un peu plus complexe qui va me permetre de voir les noms des contacts enregistrés et d'en ajouté un nouveau.

    ensuite je vais essayé d'ajouté le numéros de téléphones dans la même interface d'ajout d'un nouveau contact du genre
    _________________ ___________________
    | nom du contact | |téléphone du contact|
    -------------------- ----------------------
    et dans l'interface d'affichage des contacts déjà présent décrire le nom du contact en en dessous son téléphone

    se serais déjà un bon début non?
    plus simple que ce que j'ai dit au début, mais plus simple à réalisé ensuite je mettrais du bourage graphique autour une fois que ceci marchera

    [edit] bon les cases nom du contact et téléphone du contact son rectangulaire et séparé d'un espace de 10 dans java... mais quand j'envoie le message il décale tout de toute façon j'ai pas encore commencez mon programmes j'en suis au plan encore [/edit]

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Citation Envoyé par Storm-Rider
    Bonjours j'ai un projet semi-personnel que je n'ai aucune 'ai hate d'être bon en java!
    c'est pas une problématique lié au language ..,

    pour t aider un peu, tu vas créer un Java Bean Person ou tu vas y définir en private tous les fields, style name,firstName, birthdate on appelle ca un business object (une representation objet d une entité relationel en gros)

    tu créer ensuite une class PersonDAO ou tu implémentes les méthodes saveOrUpdate, insert, delete, deleteList

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut
    Ho... ok... sa m'a l'air compliqué mais j'imagine qu'en me creusant un peu la tête je vais bien déchiffrer tout ceci
    en fait ce que j'ai compris en gros j'appel les trucs du genre Nom du contact, Téléphone du contact, Adresse residentiel du contact et Adresse couriel du contact, et je les définis puis une autre class qui elle va s'occupé de l'interface et de la gestion des sauvergardes?
    Personnelement je contais séparé les sauvegardes des dossiers dans une autre classe mais... j'imagine que ce serait innutile et simplement plus de ligne de code (pour l'appelé dans ma class d'interface pour que lorsqu'il clique Sauvergarde est exécuté) Éclairé moi si je me trompe...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 101
    Par défaut
    autre question : elle est en quoi ton IHM ? web, RCP, swing ?

  7. #7
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Je pense que vous allez l'embrouiller plutot qu'autre chose ...

    Commence par le plus simple

    Etape 1 :

    Créer une classe Personne (ou Fiche ou ce que tu veux) avec les bons attributs : nom, prénom, adresse ...

    Ensuite tu lui mets un ou plusieurs constructeurs, des méthodes pour lire et écrire les valeurs. Getter et Setter quoi.
    Il faut également une méthode qui se charge d'afficher les infos d'une personne sous forme de chaine de caractère à l'écran (ou dans ton fichier texte). -> redéfinition de la méthode toString()

    Une fois que c'est fait, tu testes vite fait (ça devrait fonctionner asser vite)

    Ensuite tu te fais une classe Carnet, qui contient donc une liste de Fiches. Elle possède aussi des méthodes de recherche, d'ajout, de suppresison, de mise à jour de fiche. Là il faut que tu te renseignes sur les Collections...

    C'est à priori aussi ici que tu pourrais mettre ta méthode qui écrit dans ton fichier et qui le lit
    tu peux bien sûr te créer des classes spéciales si tu veux -> l'objectif serait de pouvoir passer de l'écriture dans un fichier à l'écriture dans une bdd sans modifier trop de code, mais pour ça faudra que tu te renseigne sur la conception objet et tout ses "coups spéciaux"

    Déja quand tu auras ça, tu aurais fait une partie importante ...

    Fouine un peu sur Google, n'hésite pas à tester ton code dès que tu ajoute une nouvelle méthode, pour la valider. Si tu débutes, il vaut mieux avancer lentement et sûrement. Le tout est que tu apprennes au fur et à mesure ...

    Bon courage

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut
    merci bien in
    j'ai quelques exemples de programmes java sur lesquels je vais prendre une base... j'ai aussi regardé dans un livre Java que j'ai et j'ai trouvé quelques informations qui pourrait être pertinante.

  9. #9
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Ca y est tu as ta classe Personne et ta classe Carnet ?

    Une des 2 au moins ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut
    non j'ai malheureusement pas le temps de programmer pour l'instant j'étais en cours toute la semaine alors mes projets perso étaient mis de coté et ma fin de semaine est bien chargé je ne crois pas être chez moi beaucoup mais je vais bien trouvé le temps de les faires

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    Hi,

    Je suis tombe sur ce thread par pur hasard et il m'interesse au plus au point. J'ai commence ce WE une application semblable, avec les memes interrogations que Storm-Rider. Je precise que j'ai des notions (quasi) nulles en Java, et que cette appli clone une autre deja existante dont je ne suis pas satisfait.

    Pour commencer, une description de l'application. Elle devrait permettre de gerer des individus qui ecrivent et recoivent des notes. Outre les 5 operations de base (CRUD), il faut egalement pouvoir associer une note a un auteur, ajouter des notes a une personne souhaitant les recevoir, lister les personnes recevant un certain genre de note...

    J'ai ecrit les 1eres classes pour tater le terrain. Il s'agit de Personne(nom, prenom, dateDeNaissance) et Note(titre, dateParution, Sujet, Auteur). En suivant differents conseils/tuto j'ai mis ces classes dans deux packages differents, contenant chacun une interface par classe (IPersonne and INote) et les classes de test (via le plug-in JUnit). J'ai aussi un package semblable, appele Persistance, pour la ... persistance. La premiere implementation (ArrayListPersistance) sauve les donnees dans un ArrayList.

    Mon objectif est de rapidement remplacer la persistance dans un ArrayList par une Base de Donnee avant d'attaquer le GUI. Postgresql est mon choix pour la bdd, et swing le sera surement pour le GUI.

    Je souhaite en apprendre un max tant que j'y suis, et faire une appli la plus flexible possible. D'ou mes interrogations suivantes:

    - Est il possible de changer le GUI (swing vers GTK ?) ou la BDD (PostgreSql vers mySQL ?) sans douleur ? J'ai cru comprendre que les interfaces m'y aideraient mais je ne vois pas (encore) comment.

    - Avoir une application en 3 couches (GUI, metier, bdd) a t elle un sens pour ce qu'on souhaite faire ? En quoi consiste la couche centrale ?

    - Est il possible de ne pas melanger le code Java avec les requetes SQL ?

    - La notion de package est etrange. Les interfaces des classes doivent elles etre dans le meme package que les classes ? Ne serait il pas plus interessant d'avoir un package pour Personne, Note, ArrayPersistance, un package pour les interfaces, et un autre contenant les classes de test ?

    - La derniere question, mais de loin la plus importante. Apres avoir recupere une personne dans la bdd, devons nous instancier un objet Personne avant de le transmettre au GUI ? Comment se passe la gestion des objets entre la bdd et le code Java ?

    Merci d'avance votre aide.

    Edit: Je ne souhaite pas m'approprier ce thread et j'aurais ete plus malin d'en creer un autre. Trop tard. Si cela derange vraiment, faites le moi savoir.

  12. #12
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par nuriel2
    - Est il possible de changer le GUI (swing vers GTK ?) ou la BDD (PostgreSql vers mySQL ?) sans douleur ? J'ai cru comprendre que les interfaces m'y aideraient mais je ne vois pas (encore) comment.
    C'est peut être un peu lourd mais regarde du côté du pattern factory je pense. En fait tu as une factory qui te renvoie une connexion. Cette connexion est implémentée suivant la base à laquelle tu te connectes. Par exemple Connexion peut être une ConnexionOracle ou une ConnexionMySQL. Ainsi pour changer de bdd, seule la méthode de la factory est à modifier. Ou elle peut par exemple lire dans un fichier properties ou est stocké le type de base utilisé et instancier le bon type de Connexion ...

    Citation Envoyé par nuriel2
    - Avoir une application en 3 couches (GUI, metier, bdd) a t elle un sens pour ce qu'on souhaite faire ? En quoi consiste la couche centrale ?
    Ben oui ça à un sens. Après c'est conceptuel, mais il est évident que d'avoir une architecture bien cloisonnée est un avantage pour la suite (travail à plusieurs, évolutions ...). Evidemment t'es pas obligé de faire du J2EE pour une petite appli mais séparer les données, les traitements et les affichage est une approche très saine. Ben, pour moi la couche centrale (du modèle MVC ?) c'est la partie traitement (controleur) , celle qui fait le lien entre tes données brutes et ce qui est affiché : controle des valeurs, transmission des données, respect des règles ...

    Citation Envoyé par nuriel2
    - Est il possible de ne pas melanger le code Java avec les requetes SQL ?
    Si tu utilise une couche de persistance comme les EJB ou Hibernate, tu n'a pas besoin de SQL, un mapping est réalisé entre tes objets métiers et les données. Du coup tu ne travailles que sur tes objets métiers, les opérations SQL sont masquées.

    Citation Envoyé par nuriel2
    - La notion de package est etrange. Les interfaces des classes doivent elles etre dans le meme package que les classes ? Ne serait il pas plus interessant d'avoir un package pour Personne, Note, ArrayPersistance, un package pour les interfaces, et un autre contenant les classes de test ?
    Les packages ne servent qu'à cloisonner le code. Il y a une différence entre ce qui est dans le package est ce qui est dehors. Apres, tu peux aussi créer un package par classe et tout mettre en public . Mais bon d'ordinaire on regroupe ce qui va ensemble, les objets qui sont liés entre eux. Par exemple, sur un diagramme UML, on distingue souvent des groupes de classe qui sont fortement lées entre elles, le package est un peu une manière de les ranger.
    C'est aussi important quand tu fourni tes librairies à d'autres urtilisateur, il faut déterminer ce qu'il peuvent utiliser, modifier ...
    Là tu peux simplement créer des packages Persistance, Metier et GUi par exemple

    Citation Envoyé par nuriel2
    - La derniere question, mais de loin la plus importante. Apres avoir recupere une personne dans la bdd, devons nous instancier un objet Personne avant de le transmettre au GUI ? Comment se passe la gestion des objets entre la bdd et le code Java ?
    Ben tout dépend de ta conception. Mais bon généralement tu récupère des données qui te servent à instancier tes objets.
    Il ne faut pas que la partie GUI interroge directement la base. Cette partie se contente d'afficher tes objets métiers et d'appeler des méthodes dessus. La partie GUI n'a pas à se soucier d'où viennent les données, elle n'est que la couche présentation ...

    En espérant que c'est clair (et que je ne dis pas de bêtises )

  13. #13
    Invité de passage
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut CARNET ADRESSE
    slt tout le monde je suis débutante en java aussi et j'ai pour projet de faire un cardnet d'adresse j'ai fais une classe personne une autre adresse(au cas ou la personne aura plusieurs adresses) j'ai fais une classe Application ou je metterai les methodes mais j'ai mis une methode lire qui lit a partir du clavier les noms et prenoms , maintenant je voudrai les sauvegarder dans un fichier .txt comment faire comment creer ce fichier et sauvegarder dedant comme ça pour la recherche je trouverai les contacts
    merci de me repondre

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut
    hum je sais pas pourquoi vous voulez tous sauvegardez, vos carnet dans un fichier txt le plus simple ne serait-il pas de passer par une base de donnée.

    quand a la recupération du texte une il existe une méthode lié au zone de saisie... il suffit juste que tu es un bouton valider et que tu précise que quand tu clic dessus tu recupere les données contenu dans la zone de mémoire la méthode c'est getText() qui renvois un string de ta zone.

Discussions similaires

  1. Tutoriel Débutant : Carnet d'adresses
    Par yan dans le forum Qt
    Réponses: 0
    Dernier message: 11/02/2009, 22h39
  2. Server 2003 et partage de carnet d'adresse
    Par Yepazix dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 23/10/2005, 23h47
  3. Carnet d'adresses d'Outlook
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 14/10/2005, 12h34
  4. Récupérer le carnet d'adresses de Outlook
    Par pc75 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2005, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo