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 :

Créer un logiciel en Java (Questions diverses)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut Créer un logiciel en Java (Questions diverses)
    Bonjour à tous,

    Je suis un (ex)-programmeur VBA et un petit peu C, et j'ai voulu me mettre à la POO, puisque apparament ce concept est le plus moderne et le plus intéressant qui soit (enfin d'après ses utilisateurs évidemment ).

    Je me suis donc documenté sur Developpez, et j'ai posé pas mal de questions pour savoir quel langage choisir : C++ ou JAVA. mon choix s'est finalement porté sur JAVA, et après m'être acheté un bon bouquin (celui de Delannoy pour ne pas le citer) et l'avoir terminé, un certain nombre d'interrogation demeure...

    Première question concernant l'organisation du code :

    • Dans un langage procédural, l'architecture me semblait à peu près logique, on créait des procédures et/ou fonctions qui s'appelaient les unes les autres, puis on les organisaient par unité de sens dans des modules (VBA) ou fichiers (C).
      En JAVA, avec le concept de classe, je ne suis pas sûr de la marche à suivre. Faut-il créer des classes contenant des méthodes qui appellent des méthodes d'autres classes, etc... ou alors faut-il mettre l'appel des méthodes seulement dans le main, histoire d'avoir un code clair et facilement réexploitable (il me semble qu'avec des imbrications de méthode ça risque d'être vite le fouillis).
      Je pose cette question car dans le bouquin de Delannoy, il n'y a que des exemples assez simples (du moins assez courts ) et que je n'ai donc pas vu comment organiser un programme "long".


    Deuxième question concernant l'aspect graphique (SWING):

    • D'abord même si Swing à l'air très bien, il me semble un peu limité au niveau personnalisation des différents composants, je me trompe?

    • Ensuite j'aurais voulu savoir s'il existait un moyen de "dessiner" à l'écran son interface (comme en VBA) sans avoir à coder tous les boutons, menus, combobox... En effet, lorsqu'on commence à avoir une interface un peu évoluée, on peut vite se retrouver avec tout plein de composants bien agencés à l'écran, et la mise en ouevre de cette organisation par le code ne me semble guère pratique.

    • Finalement, une question un peu plus spécifique, je voudrais adapter un programme que j'ai fait en VBA en JAVA. Cependant ce programme pouvait profiter de la présence d'Excel comme fond pour s'organiser en différentes pages d'interface. Est-il possible en JAVA d'avoir par exemple une page d'accueil, puis en cliquant sur un bouton d'accéder à une autre page comportant ses propres menus et champs, qui permettent d'accéder à d'autres "pages" ayant elles-mêmes leurs menus, champs, boutons propres??


    Voilà merci à tout ceux qui m'auront lus et auront le temps de me répondre

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Pour la partie Swing, je te conseille d'aller plutot poser les questions sur le forum GUI -> AWT/Swing.

    Sinon, pour l'organisation, c'est assez vague ce que tu demandes, je vais donc faire de mon mieux

    Tout d'abord, pour bien structurer un projet, il faut avoir bien compris la conception orientée objet, et de ce que tu as écrit, je pense que c'est ce que tu dois travailler.
    Les méthodes doivent s'appeler les unes les autres. Dans l'idéal, le main ne doit posséder que très peu de lignes. Dans les gros projets, le main se résume souvent à cette structure :

    - récupération des arguments
    - Instanciation d'un objet 'principal'
    - Appel d'un méthode sur cet instance
    - traitement des éventuelles exceptions

    Parfois l'instanciation peut lancer le logiciel, ce qui rend la 3e étape inutile.

    Tout mettre dans le main ne rend pas le code plus facilement ré-exploitable, à mon avis c'est même l'inverse.
    Ce qu'il faut, c'est bien réfléchir à chaque objet, bien avoir en tête ce qu'il représente et alors le role de ses méthodes devient évident. Ce qui fait que les autres classes peuvent les appeler de manière naturelle, sans que ça soit 'fouilli'.
    Et quand tu as ça, tu as un code qui est ré-utilisable dans d'autres projets.

    Le mieux, avant de te lancer dans le développement d'un vrai logiciel, c'est que tu fasses des exemples que tu complexifies de plus en plus. Que tu essaies de ré-utiliser des classes que tu as déjà faites, que tu te confrontes à ce genre de problèmes.

    Et si tu fais une interface graphique en plus, sépare bien l'interface des données, si tu ne veux pas avoir un truc impossible à maintenir.

    bon courage et j'espère avoir répondu à tes attentes.

  3. #3
    Membre émérite
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Par défaut
    pour le côté dessin des interfaces graphiques, tu as JIGLOO, un plugin eclipse qui te permet de faire ça.
    bon courage

  4. #4
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    merci de vos premières réponses, je vais continuer à me renseigner

    Ceci dit si d'autres personnes veulent m'apporter d'autres réponses je suis preneur

  5. #5
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    En JAVA, avec le concept de classe, je ne suis pas sûr de la marche à suivre. Faut-il créer des classes contenant des méthodes qui appellent des méthodes d'autres classes, etc... ou alors faut-il mettre l'appel des méthodes seulement dans le main, histoire d'avoir un code clair et facilement réexploitable (il me semble qu'avec des imbrications de méthode ça risque d'être vite le fouillis).
    Je pose cette question car dans le bouquin de Delannoy, il n'y a que des exemples assez simples (du moins assez courts ) et que je n'ai donc pas vu comment organiser un programme "long".
    c'est là qu'une modélisation de ton application s'impose (UML par exemple)
    , aussi il faut organiser ses classes dans des packages selon leur sémantique et fonctionnalités communes .
    pour une interface graphique , j'ai utilisé le modèle MVC et mon code est resté extrêmement clair .

  6. #6
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    D'abord même si Swing à l'air très bien, il me semble un peu limité au niveau personnalisation des différents composants
    qu'entends tu par personnalisation ?

    il faut pas oublier qu'il existe pour Swing des composants tiers qui sont trés bien faits .

    Finalement, une question un peu plus spécifique, je voudrais adapter un programme que j'ai fait en VBA en JAVA. Cependant ce programme pouvait profiter de la présence d'Excel comme fond pour s'organiser en différentes pages d'interface. Est-il possible en JAVA d'avoir par exemple une page d'accueil, puis en cliquant sur un bouton d'accéder à une autre page comportant ses propres menus et champs, qui permettent d'accéder à d'autres "pages" ayant elles-mêmes leurs menus, champs, boutons propres??
    j'ai pas bien compris

  7. #7
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut,

    Pour compléter mes prédécesseurs...

    Citation Envoyé par conconbrr
    Faut-il créer des classes contenant des méthodes qui appellent des méthodes d'autres classes, etc... ou alors faut-il mettre l'appel des méthodes seulement dans le main, histoire d'avoir un code clair et facilement réexploitable (il me semble qu'avec des imbrications de méthode ça risque d'être vite le fouillis).
    Tu ne peux pas te limiter à appeler des méthodes dans le main. Ca c'est de l'esprit procédural, il faut vite que tu bascules sur la POO dans ta tête!

    Dans la POO, tu n'appelles pas des méthodes, tu travailles sur des objets.
    Si on prend l'exemple de démarrer une voiture, en procédural ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mettre la clef de contact
    débrayer
    tourner la clef
    alors qu'en objet ça sera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    démarrer la voiture
    En POO, tu utiliseras une classe "voiture", avec une méthode "démarrer". Et c'est tout. Après, bien sûr, il faut définir dans la classe voiture ce qu'il faut faire quand la méthode "démarrer" est appelée (aller chercher l'objet "clef", le mettre dans le contacteur, aller chercher l'objet embrayage, le mettre en position débrayé... etc etc)
    Tu divises le problème en sous-problèmes qui peuvent être gérés individuellement et indépendamment du contexte. Et au final, tu les regroupes tous ensemble avec ta programmation.
    C'est là que ce qu'à dit bassim intervient, il faut bien analyser ce que doit faire ton programme, afin de le séparer en classes adéquates.


    Citation Envoyé par conconbrr
    Je pose cette question car dans le bouquin de Delannoy, il n'y a que des exemples assez simples (du moins assez courts ) et que je n'ai donc pas vu comment organiser un programme "long".
    Et bien je te conseille fortement de commencer simple!
    Je viens du monde VBA moi aussi, en passant par VB, Delphi, puis C++, et il n'y a vraiment qu'en Java que j'ai compris la POO (pour te dire, je faisais du procédural en C++! )
    Pige déjà comment ça marche avec une classe, puis deux, et complique petit à petit...


    Citation Envoyé par conconbrr
    D'abord même si Swing à l'air très bien, il me semble un peu limité au niveau personnalisation des différents composants, je me trompe?
    Oui.
    Swing permet déjà de personnaliser pas mal de choses sur les composants "de base".
    Il permet aussi de "customiser" les composants à ta guise.
    Il permet aussi de créer tes propres composants à toi, si ce que tu veux n'existe pas.


    Citation Envoyé par conconbrr
    Ensuite j'aurais voulu savoir s'il existait un moyen de "dessiner" à l'écran son interface (comme en VBA) sans avoir à coder tous les boutons, menus, combobox... En effet, lorsqu'on commence à avoir une interface un peu évoluée, on peut vite se retrouver avec tout plein de composants bien agencés à l'écran, et la mise en ouevre de cette organisation par le code ne me semble guère pratique.
    Sans entrer dans un débat "eclipse vs netbeans vs jbuilder vs....", tous les grands EDI du monde java ont des modules qui permettent de créer les interfaces manuellement.
    Cependant, je te déconseille très fortement de commencer avec ça.... tu vas au-devant de gros ennuis si tu ne connais pas un minimum le fonctionnement de swing, et ceci ne peut s'appréhender que si tu as tâté un minimum du code de création d'IHM à la mano (même en étant sacrément balèze et an ayant lu le bouquin une fois).
    Et tu verras que même à la main, en découpant son interface en classes, ce n'est pas si insurmontable que ça (au contraire, ça nécessite d'être organisé, et ça donne un IHM plus modulable, et donc plus facile à gérer).
    Une fois que tu auras un peu compris comment ça marche, là oui, sans problème, tu peux te servir du concepteur graphique...

    Citation Envoyé par conconbrr
    Finalement, une question un peu plus spécifique, je voudrais adapter un programme que j'ai fait en VBA en JAVA. Cependant ce programme pouvait profiter de la présence d'Excel comme fond pour s'organiser en différentes pages d'interface. Est-il possible en JAVA d'avoir par exemple une page d'accueil, puis en cliquant sur un bouton d'accéder à une autre page comportant ses propres menus et champs, qui permettent d'accéder à d'autres "pages" ayant elles-mêmes leurs menus, champs, boutons propres??
    Oui.
    Tu peux utiliser autant de fenêtres que tu en as envie (enfin... dans la limite des capacités mémoire de ton PC). De la même manière qu'en VB, C++, Delphi.... Avec des menus, des boutons, etc etc... la totale...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  8. #8
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    +1 plegat a raison sur toute la ligne.
    Tu ne peux pas te limiter à appeler des méthodes dans le main. Ca c'est de l'esprit procédural, il faut vite que tu bascules sur la POO dans ta tête!
    Combien je vois de programmeurs faire du Java procédural : Peu d'objets et beaucoup de méthodes statiques Quels fouillis !!!

  9. #9
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Merci de vos réponses Je vais continuer à me renseigner et à perséverer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un logiciel avec Java
    Par spring flower dans le forum Général Java
    Réponses: 3
    Dernier message: 18/12/2014, 20h32
  2. Réponses: 1
    Dernier message: 06/08/2009, 11h28
  3. Cherche un tutorial pour créer un logiciel de messagerie ?
    Par BXDSPORT dans le forum Web & réseau
    Réponses: 1
    Dernier message: 28/10/2005, 17h49
  4. [Image]Créer une image avec JAVA 1.1
    Par burno dans le forum 2D
    Réponses: 4
    Dernier message: 11/08/2004, 09h19
  5. Créer un logiciel de maintien de collection ?
    Par Tendance dans le forum Bases de données
    Réponses: 6
    Dernier message: 08/07/2004, 14h32

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