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

API standards et tierces Java Discussion :

[RMI][Applet] mise en place de RMI


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Disons que si dans un premier temps je pouvais, en utilisant RMI, distribuer la leçon et que seul le professeur puisse agir...
    Et que dans un deuxième temps je m'attaque à la partie gestion des inscriptions, des utilisateurs et les liens avec la base SQL, et que je développe cette deuxième étape en PHP, ce serait génial....

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Je crois que tu dois oublier la solution RMI entre applet.

    Use a Java applet to access remote Web services
    voici un article qui donne la solution servie sur un plateau en or.

    Ne prend pas peur avec le term Web Service.

  3. #3
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Ben en fait, ce n'est pas vraiment entre DES applets puisque si je gère les inscriptions par PHP, il n'y a qu'une applet qui doit être vue par plusieurs personnes.....
    Mais bon, je vais regarder ce qu'ils disent sur ton lien..
    Merci en tout cas...

  4. #4
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Citation Envoyé par jowo
    Je crois que tu dois oublier la solution RMI entre applet.

    Use a Java applet to access remote Web services
    voici un article qui donne la solution servie sur un plateau en or.

    Ne prend pas peur avec le term Web Service.
    Euh si je dois dire que j'ai pris peur, il y a du XML, du PHP et je ne sais plus quoi, et je ne maîtrise pas du tout le sujet...

    Je reviens à la charge avec mon RMI..... tétu de savoyard !!
    J'ai essayé de modifier mon applet pour implémenter RMI.
    Je rappelle ce que je fais et comment je le fais ...
    C'est une appli pour apprendre à jouer au jeu de Go.
    Il y a le Goban (où l'on place les pierres) et les pierres à positionner dessus.
    Le principe, à l'initialisation, je crée une pierre sur toutes les intersections du goban et je les rend invisible.
    C'est au moment où je clique sur une pierre que j'affecte la couleur (noire ou blanche) et que je la rend visible..
    j'ai donc ma classe du côté serveur :
    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
    45
    46
    47
    48
    import java.rmi.*;
    import java.rmi.registry.*;
    import java.rmi.server.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class ActionGobanImpl extends UnicastRemoteObject implements ActionGoban
    {
        private static String adresseIP = "192.168.1.5:1099";
        private PanGoban goban;
        private String pseudo;
        private Pierre pierre;
     
        public ActionGobanImpl () throws RemoteException
        {
            super();
            goban = PanGoban.getInstance();
        }
     
        public void actionPierre(MouseEvent me,int x, int y, boolean action, Color coul) throws RemoteException
        {
            ((Pierre) goban.getComponentAt(me.getX(),me.getY())).setVisible(action,coul);        
        }
     
        public static void main(String args[])
        {
            //Crée et installe un security manager
            //System.setSecurityManager(new RMISecurityManager());
            try
            {
                LocateRegistry.createRegistry(1099);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            try {
                ActionGobanImpl gob = new ActionGobanImpl();
                Naming.rebind("rmi://" + adresseIP + "/SalledeJeu", gob);
                System.out.println("ActionGoban enregistré dans le registry");
            } catch (Exception e)
            {
                System.out.println("ActionGobanImpl err: " + e.getMessage());
                e.printStackTrace();
            }
     
        }
    }
    et mon applet : (qui est en fait un panel dans l'applet)

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.rmi.*;
    import java.util.*;
    import javax.swing.*;
     
    public class PanGoban extends JPanel
    {
        private static PanGoban panGoban;
        private static String adresseIP = "192.168.1.5:1099";
        private static int TAILLE = 19;
        private static int PAS = 24;
        private Image goban = null;
        private Image fond = null;
        private boolean [][] TablePierre = new boolean [TAILLE][TAILLE];
        private Pierre pierre;
        private String choixBouton;
        private boolean eleve;
        private int x;
        private int y;
        private transient Vector v = new Vector(5,2); //Liste des abonnés
        private ActionGoban gob = null;
     
        private PanGoban ()
        {
            this.setLayout (null);
            URL urlGob = getClass().getResource("images/goban2.gif");
            URL urlFon = getClass().getResource("images/fond.gif");
            goban = getToolkit().getImage(urlGob);
            fond = getToolkit().getImage(urlFon);
            EcouterGoban ecGob = new EcouterGoban();
            addMouseListener(ecGob);
            choixBouton = "PBN";
            eleve = true;
            setVisible(true);
        }
     
        public static PanGoban getInstance()
        {
            if (panGoban == null)
            {
                panGoban =  new PanGoban();
            }
            return panGoban;
        }
     
        public void addPanGobanListener(PanGobanListener pgl)
        {
            v.addElement(pgl);
        }
     
        public void removePanGobanListener (PanGobanListener pgl)
        {
            v.removeElement(pgl);
        }
     
        public void firePanGobanChanged()
        {
            PanGobanEvent pge = new PanGobanEvent (this);
            for (Enumeration e = v.elements();e.hasMoreElements();)
            {
                ((PanGobanListener)e.nextElement()).panGobanChanged(pge);
            }
        }
     
       public void initGoban()
        {
            for (int i = 0; i < TAILLE; i++) 
            {
                for (int j = 0; j < TAILLE; j++)
                {
                    pierre = new Pierre(Color.white, panGoban);
                    panGoban.add(pierre);
                    pierre.setBounds(new Rectangle(i*PAS,j*PAS,25,25));
                    pierre.setVisible(false);
                }
            }
        }
     
        public void initInter() 
        {
            for (int i = 0; i < TAILLE; i++) 
            {
                for (int j = 0; j < TAILLE; j++)
                {
                    TablePierre[i][j] = false;
                }
            }
     
        }
     
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            setBackground(Color.lightGray);
            g.drawImage(fond,0,0,700,800,this);
            g.drawImage(goban,2,2,480,550,this);
        }
     
        class EcouterGoban extends MouseAdapter
        {
            public void mouseClicked(MouseEvent me)
            {
                x = me.getX();
                y = me.getY();
                x = x - (x%PAS);
                y = y - (y%PAS);
                if (choixBouton == "PBN")
                {
                    choixPBN(me);
                }
                else if (choixBouton == "PN")
                {
                    choixPN(me);
                }
                else if (choixBouton == "PB")
                {
                    choixPB(me);
                }
                else if (choixBouton == "NP")
                {
                    choixNP(me);
                }
                else if (choixBouton == "inter")
                {
                    choixInter(me);
                }
                else if (choixBouton == "ninter")
                {
                    choixNInter(me);
                }
                else if (choixBouton == "del")
                {
                    choixDelta(me);
                }
                else if (choixBouton == "ndel")
                {
                    choixNDelta(me);
                }
                repaint();
            }
        }
     
        public void choixPBN(MouseEvent me)
        {
            if (eleve)
            {
                if (!TablePierre[x/PAS][y/PAS])
                {
                    try 
                    {
                        gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                        gob.actionPierre(me,x,y,true,Color.black);
                        TablePierre[x/PAS][y/PAS] = true;
                        eleve = false;
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
     
                }
            }
            else
                {
                if (!TablePierre[x/PAS][y/PAS])
                {
                    try
                    {
                        gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                        //gob.actionPierre(me.getX(),me.getY(),true,Color.white);
                        TablePierre[x/PAS][y/PAS] = true;
                        eleve = true;
                    } catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
                }
     
        }
     
        public void choixPN(MouseEvent me)
        {
            try
            {
                gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                if (!TablePierre[x/PAS][y/PAS])
                {
                    //gob.actionPierre(me.getX(),me.getY(),true,Color.black);
                    TablePierre[x/PAS][y/PAS] = true;
                }
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }
     
        public void choixPB(MouseEvent me)
        {
            try
            {
                gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                if (!TablePierre[x/PAS][y/PAS])
                {
                    //gob.actionPierre(me.getX(),me.getY(),true,Color.white);
                    TablePierre[x/PAS][y/PAS] = true;
                }
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }
     
        public void choixNP(MouseEvent me)
        {
            try
            {
                gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                if ((getComponentAt(me.getX(),me.getY()).getClass().getName() == "Pierre")
                        && TablePierre[x/PAS][y/PAS])
                {
                    //gob.actionPierre(me.getX(),me.getY(),false,Color.white);
                    TablePierre[x/PAS][y/PAS] = false;
                }
            } catch (Exception e)
            {
                e.printStackTrace();
            }
     
        }
     
        public void choixInter(MouseEvent me)
        {
            try
            {
                gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                if (!TablePierre[x/PAS][y/PAS])
                {
                    //gob.actionPierre(me.getX(),me.getY(),true, Color.red);
                }
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }
     
        public void choixNInter(MouseEvent me)
        {
            try
            {
                gob = (ActionGoban) Naming.lookup("rmi://" + adresseIP+ "/SalledeJeu");
                if ((getComponentAt(me.getX(),me.getY()).getClass().getName() == "Pierre")
                        && ((Pierre)(getComponentAt(me.getX(),me.getY()))).getCoulPierre() == Color.red)
                {
                    //gob.actionPierre(me.getX(),me.getY(),false,Color.red);
                }
            } catch (Exception e)
            {
                e.printStackTrace();
            }
        }
     
     
        public void setChoixBouton(String choixB)
        {
            choixBouton = choixB;
        }
    }
    Et le problème, me direz vous ?
    Quand je clique sur le jeu pour faire apparaître une pierre, j'ai un NullPointerException......
    Quelqu'un a t'il une idée ?
    Merci d'avance !!!

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    Tu veux pas nous mettre en gras la ligne ou y a la NullPointerException ?

  6. #6
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Ah oui, bien sûr, désolé....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public void actionPierre(MouseEvent me,int x, int y, boolean action, Color coul) throws RemoteException
        {
         ((Pierre) goban.getComponentAt(me.getX(),me.getY())).setVisible(action,coul);
        }
    Cette méthode n'a qu'une ligne.
    Merci de voir ce que je n'arrive pas à voir......

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    On peut voir la méthode setVisible(boolean, Color) de ta classe Pierre ?

  8. #8
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Oui, bien sûr, elle est toute bête !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public void setVisible(boolean visible, Color couleur)
        {
            this.setVisible(visible);
            coulPierre = couleur;
        }

  9. #9
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Citation Envoyé par Michel38
    Ah oui, bien sûr, désolé....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public void actionPierre(MouseEvent me,int x, int y, boolean action, Color coul) throws RemoteException
        {
         ((Pierre) goban.getComponentAt(me.getX(),me.getY())).setVisible(action,coul);
        }
    Cette méthode n'a qu'une ligne.
    Merci de voir ce que je n'arrive pas à voir......
    Pour mieux voir, il serait préférable de partager ton unique ligne en plusieurs. Par exemple une ligne par affectation.

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Par défaut
    dans ta méthode setVisible tu mets au début:

    System.out.println("visible = "+visible);
    System.out.println("couleur = "+couleur);

    Qu'est-ce qui s'affiche ?

  11. #11
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Citation Envoyé par n00bi
    dans ta méthode setVisible tu mets au début:

    System.out.println("visible = "+visible);
    System.out.println("couleur = "+couleur);

    Qu'est-ce qui s'affiche ?
    Et bien rien, ou plutôt il n'arive jamais à ce stade. C'est pour ça qu'il me met un NullPointerException.
    Il n'arrive pas à utiliser cette méthode car le programme n'arrive pas à trouver l'objet sur lequel je clique !!

  12. #12
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Citation Envoyé par jowo
    Pour mieux voir, il serait préférable de partager ton unique ligne en plusieurs. Par exemple une ligne par affectation.
    C'est marrant ça....
    j'ai séparé comme tu m'as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Component com = goban.getComponentAt(me.getX(),me.getY());
            Pierre pierre = (Pierre) com;
            pierre.setVisible(action,coul);
    et maintenant il me met le NullPointerException sur la ligne du setVisible !!!
    Comprends plus rien moi !!

  13. #13
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Es-tu sûr que getComponentAt retourne tjrs un objet non null?

    L'APIDOC est un ami qui te veut que du bien.

    va voir getComponentAt

  14. #14
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Non, en fait il ne me met une erreur qu'à partir du moment où j'ai une action sur mon objet, et là il me dit qu'il n'existe pas....

  15. #15
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    En fait je me répondais à moi même, et ça confirme ce que la doc dit.
    Le problème est donc que je n'arrive pas à faire le lien entre les objets existants et l'action de sélectionner un de ces objet avec la souris.
    Ca fait comme si j'avais deux goban, le premier, là ou je mets mes objets, et le deuxième là où je clique !!!

  16. #16
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    L'instance de PanGoban sur ton serveur est-elle celle de ton Applet :

  17. #17
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Euh, non en fait....
    C'est une JPanel issu de mon applet dont voici le code :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class FenPrinc extends JApplet
    {
        private PanGoban panGoban  = PanGoban.getInstance();
        private PanDroit panDroit = new PanDroit(); 
     
        public void init ()
        {
            start();
        }
     
        public void start ()
        {
            Ecouteur e = new Ecouteur();
            this.getContentPane().setBackground(Color.lightGray);
            this.getContentPane().setLayout(new BorderLayout());
            this.getContentPane().add("Center",panGoban);
            this.getContentPane().add("East",panDroit);
            panGoban.setBackground(Color.lightGray);
            panDroit.setBackground(Color.lightGray);
            EcouteBouton ecButt = new EcouteBouton(); 
            panDroit.espionnerBouton(ecButt);
            panGoban.initGoban();
            panGoban.initInter();
            setVisible(true);
        }
     
        public void paint(Graphics g) 
        {
            super.paint(g);
            showStatus("Vous voulez jouer au jeu de Go ?");
        }
     
        class Ecouteur extends  WindowAdapter
        {
            public void windowClosing(WindowEvent we)
            {
                System.exit(0); 
            }
        }
     
        class EcouteBouton implements ActionListener
        {
            public void actionPerformed(ActionEvent ae)
            {
                String choixBouton;
                choixBouton = ae.getActionCommand();
                panGoban.setChoixBouton(choixBouton);
            }
        }
     
    }

  18. #18
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Ton programme me dérange car il enveoi l'UI (User Interface) au serveur.

    Ce que je conseille est de créer une application sur le modèle MVC. La partie V (View) est traité par ton applet (Visualisation de ton goban), le modèle et le contrôlleur résident sur le serveur.

    Donc ton applet reçoit l'état du jeu depuis le serveur et lui envoie les actions du jouer. Les actions sont déjà traduites, ne pas envoyer le me.getX() et le met.getY() mais directement les coordonnées de la pierre posée.

    Actuellement comment testes-tu ton applicattion? Le poste client et un serveur sont-il sur la même machine?

  19. #19
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Oui, pour l'instant je teste sur ma machine, donc la partie serveur et la partie client tournent sur mon poste.

  20. #20
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Citation Envoyé par jowo
    Ce que je conseille est de créer une application sur le modèle MVC. La partie V (View) est traité par ton applet (Visualisation de ton goban), le modèle et le contrôlleur résident sur le serveur.
    Oula, ca me fait refaire quasiment tout... et je ne vois pas trop comment gérer ça.
    J'avais essayé de raisonner sur le principe que nul n'est plus habilité à faire une action sur un objet que l'objet lui même...
    Mais là je ne vois pas trop...

Discussions similaires

  1. Pistes mise en place RMI
    Par drake56 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 27/12/2010, 12h52
  2. [RMI] Mise en place RMI et système proche des EJB
    Par damien77 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 29/12/2008, 14h11
  3. [RMI] mise en place d'une application distribuée
    Par cerco1 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/09/2007, 13h02
  4. [RMI] Exemple simple de mise en place
    Par Marc90 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 31/05/2006, 16h17

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