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 :

[Interface graphique] Generalites


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Points : 55
    Points
    55
    Par défaut [Interface graphique] Generalites
    Bonjour,

    Le sujet de mon post est en fait assez general et independant de Java, mais je poste quand meme ici pck les notions que je cherche a approfondir seront finalement implementees en ce langage.
    Dans le cadre d'un assez grand projet, je suis amene a utiliser mon application en 2 modes : mode graphique avec swing, et mode texte en ligne de commande.
    Mon projet est decoupe en plusieurs modules (packages) qui realisent le traitement global de l'application.
    Cependant, je voudrais des idees/notions/propotitions/recommandations sur comment separer la partie traitements de la partie interface utilisateur (qu'elle soit GUI ou bien ligne de commande).
    Je ne vois pas en ce moment comment faire pour que mes traitements n'invoquent pas la partie interface, et vice versa.
    Ceux qui ont de l'experience dans ce domaine peuvent peut etre m'aider pour penser a une "architecture" (le mot est assez gros ) pour garder un minimum d'homogeneite dans mon code et une sepraration logique des traitements/interfaces.
    Merci d'avance de votre aide.

    --
    yelbied

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    Pour ce qui est de la partie contrôle, il faut qu'elle propose des méthodes pour tout faire. Elles seront appelées par le module d'interface utilisateur.

    Pour le sens inverse (notification du contrôle vers l'utilisateur), tu peux définir des interfaces (ou des classes abstraites) qui offrent les méthodes nécessaires, et qui seront implémentées de manière différente.

    Par exemple supposons que tu lances un calcul. Pour afficher ses résultats, tu utilises l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    public interface CalculDisplayer {
     
      public void printResult(Object result);
     
      public void notifyError(Object message);
     
    }
     
    public class ConsoleCalculDisplayer implements CalculDisplayer {
     
      public void printResult(Object result) {
        System.out.println(result);
      }
     
      public void notifyError(Object message) {
        System.err.print("Error in Calcul : ");
        System.err.println(message);
      }
    }
     
    public class JLabelCalculDisplayer implements CalculDisplayer {
     
      public void printResult(Object result) {
        this.setText(result.toString());
      }
     
      public void notifyError(Object message) {
        JOptionPane.showMessageDialog(....);
      }
    }
     
    public class Calcul {
      CalculDisplayer disp;
      public void setDisplayer(CalculDisplayer disp) {
        this.disp = disp;
      }
     
      public void doCalcul() {
        ...
        if(...) disp.notifyError(...);
        ...
        disp.printResult(...);
      }
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour

    Je te conseille ce tuto .
    Il est pour swing et tu pourras avoir une bonne architecture pour adapter vers une sortie console.

    bon courage

  4. #4
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Points : 55
    Points
    55
    Par défaut
    Merci de vos reponses...
    J'avais en effet pense a l'idee de xavlours de faire une abstraction de mon interface utilisateur pour que mes traitements fassent des appels transparents quel que soit le mode de fonctionnement.
    Je crois que je vais partir sur cette idee, tout en adoptant celles du tuto propose que je commence a lire la.
    Codez bien

    --
    yelbied

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2004, 18h29
  2. interface graphique utilisateur, que faut-il utiliser?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/03/2004, 12h18
  3. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 10h20
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 09h49

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