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

Interfaces Graphiques en Java Discussion :

Programmation Interface graphique


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Programmation Interface graphique
    Bonsoir,
    Je suis un étudiant en informatique 3ème année (Licence cette année).
    Je veux faire comme PFE un sujet comme celui ci ( http://www.java-online.ch/lego/legoE...turtle.inc.php), mais je n'ai pas d'idée comment débuter. Donc, je m'adresse à vous pour m'aider et me donner des indications pour commencer la réalisation de ce projet qui facilite la compréhension du langage LOGO pour les electroniciens (qui ne sont pas des informaticien )
    Le problème : ils doivent introduire des instructions en LOGO, et mon application (qui est en java ) doit faire marcher la tortue selon les instruction ecrite par les électroniciens. C''est ça à peu près ce que je dois realiser comme projet fin d'études.
    Merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    C'est un peu vague comme question. Pour la réalisation d'une telle application, il y a au préalable 2 ou 3 décisions à prendre :

    • Choix du type d'API graphique. Tout dépend de ce que tu connais déjà. Mettons que tu chosiisses AWT/SWING, mais il y a ausis JavaFX, entre autres.
    • Ensuite, le plus simple pour commencer est de faire un système à saisie d'instructions uniques (l'autre choix serait de pouvoir saisie un programme en logo complet). Disons qu'à partir où tu sais exécuter chaque instruction séparemment (surtout que les instructions sont assez simple en logo, pour peu que tu n'introduises aucune notion de variables, ou autres éléments plus complexes à programmer, comme les boucles, les procédures), du moins dans un premier temps (tu pourras toujours le faire ensuite pour faire évoluer ton programme)


    Ensuite, tu décides de l'organisation de ton interface graphique : le plus simple étant une partie pour le dessin et une partie pour la saisie des instructions LOGO, par exemple, en dessous. Si tu optes pour une solution où on peut saisir des programmes en LOGO, il faudra mettre en place au moins un éditeur de base.

    Ensuite, tu réfléchis à la manière de réaliser un tel programme. Le LOGO, pour son principe général, est un langage qui pilote un crayon (la tortue) : il va te falloir donc "modéliser" cette tortue (un simple couple de coordonnées x et y, associé à un angle, en fait). Ensuite, on pilote la tortue en lui envoyant des ordres simples, du type avancer, tourner, etc... Invotorie toutes les commandes que tu vas devoir gérer.

    Je ne sais pas si tu connais déjà AWT ou SWING : si ce n'est pas le cas, tu dois savoir qu'on ne dessine pas comme sous Paint ou GIMP. Les ordres de dessins ne sont pas "mémorisés" : le principe est de coder dans la méthode prévue à cet effet (par exemple, si tu prends le composant AWT Canvas, adapté à ce que tu veux faire, le code ira dans sa méthode paint(Graphics) l'ensemble de dessin (passé et présent). Il est donc nécessaire de mémoriser l'ensemble des commandes déjà passées pour pouvoir tout redessiner à chaque fois. A chaque ordre nouveau, on l'ajoute la liste des précédents, et on redessine le tout. 3 solutions pour le faire : une liste de commandes par exemple, ou dessiner dans une image, ou utiliser un Path (ou un ensemble de Path). Pour le premier cas, il faudrait définir une classe qui représente une commande (une abstraction qu'on étendra pour chaque type de commande). Pour le second cas, c'est plus facile. Puisque l'image mémorise tout ce qu'on a déjà dessiné, mais il y a une petite difficulté : la gestion de la taille de l'image (qu'on ne connait pas au départ à priori, à moins qu'on prenne la décision de fixer cette taille à une taille arbitraire). Pour le troisième, je te laisse regarder les classes nécessaires (GeneralPath, Path2D...)

    Ensuite, il faut que tu réflechisses à la façon de saisir les commandes : un champ de saisie simple pourra faire l'affaire (un JTextField par exemple). Même si on peut faire des choses plus jolies (par exemple, quelque chose qui ressemble à la console de ton OS). L'utilisateur va y saisir des instructions du type :
    Il va falloir donc que tu programmes un système capable d'analyser ce type de saisie pour séparer la partie AV et la partie 100, afin de déterminer qu'on demande à la tortue d'avancer et d'avancer de 100. On appelle ça "parser". A toi de voir quelles solutions pour parser tu comptes mettre en place, selon tes connaissances de Java (utilisation des méthodes de la classe String, ou expressions régulières, ou parser à base de jflex/cup (ou jacc), etc...), et les ambitions de ton programme (si tu veux pouvoir mettre en place des boucles, des procédures, etc... parser sera plus simple avec jflex/cup qu'avec String)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup pour l'explication ,
    Vraiment très bien expliqué , et sa m'a donné une bonne visualisation pour faire le projet .
    quand je commence la réalisation je revient ici s'il y a quelque chose qui cloche
    Merci autre fois

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/08/2009, 17h17
  2. Programme : Interface graphique
    Par allan02390 dans le forum C++
    Réponses: 2
    Dernier message: 12/10/2007, 10h40
  3. Intégrer une interface graphique (JPEG) à mon programme Java
    Par muad'dib dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 10/11/2006, 17h18
  4. [VB6] Programme sans interface graphique
    Par yuan dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/05/2006, 19h29
  5. [Kylix] Programme sans interface graphique
    Par pewpew2001 dans le forum EDI
    Réponses: 1
    Dernier message: 06/10/2005, 19h46

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