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

AWT/Swing Java Discussion :

Déplacer des souris en Swing


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 1
    Par défaut Déplacer des souris en Swing
    Bonjour,

    Je cherche à afficher 5 souris qui arrivent dans l’espace graphique tour à tour depuis son centre et se déplacent aléatoirement vers une des cases adjacentes (nord, est, sud, ouest), toutes les (int)(Math.random()*2000) millisecondes.
    Chaque souris est un thread indépendant, démarré dans le programme de test. Elles ne peuvent pas se déplacer sur une case déjà occupée, ni sortir des limites de la fenêtre. Merci infiniment.

    Voici le code à ajouter ou modifier si nécessaire :
    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
    int low = 20; int high = 390;
     
    int randomX = (int)(Math.random() * (high-low)) + low;
    int randomY = (int)(Math.random() * (high-low)) + low; 
    Shape souris = new Ellipse2D.Double(randomX, randomY,  10, 10 );
     
    int randomX1 = (int)(Math.random() * (high-low)) + low;
    int randomY1 = (int)(Math.random() * (high-low)) + low;    
    Shape souris1 = new Ellipse2D.Double(randomX1, randomY1, 10, 10);
     
    int randomX2 = (int)(Math.random() * (high-low)) + low;
    int randomY2 = (int)(Math.random() * (high-low)) + low;    
    Shape souris2 = new Ellipse2D.Double(randomX2, randomY2, 10, 10);
     
        //Shape square = new Rectangle2D.Double(100, 100, 100, 100);
     
        public void paint(Graphics g) {
     
            setOvals(5);
            g.setColor( Color.green );
            g.fillOval ( 10, 20, 10, 20 ); // x, y, width, height
            g.drawOval (10,20,10,20 ) ;
     
            //g.setColor( Color.green );
           // g.fillOval ( 10, 20, 10, 20 ); // x, y, width, height
            //g.drawOval (10,30,10,20 ) ;
     
            //ga.draw(souris1);
             g.setColor(Color.green);
            ((Graphics2D) g).fill(souris1); // add cast to g
     
            // ga.draw(souris2);
            //    ga.setPaint(Color.green);
            // ga.fill(souris2);
     
             g.setColor(Color.green);
             ((Graphics2D) g).fill(souris2);
     
               //Shape souris3 = null;
              //Graphics2D g = null;
              Graphics2D graphics2d = (Graphics2D) g; //add cast to
               Shape souris3 = null;
               // graphics2d.draw(souris3);
                graphics2d.setPaint(Color.green);
                graphics2d.fill(souris3);
            // ga.setPaint(Color.red);
             //ga.draw(square);
     
                g.setColor(Color.green);
                ((Graphics2D) g).fill(souris3);
        }
     
        private void setOvals(int i) {
        }
     
        public static void main(String args[]) {
            Frame frame = new Fenetre();
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent we) {
                    System.exit(0);
                }
            });
            frame.setSize(400, 400);
            frame.setVisible(true);
        }
       }
         /*public int getOvals() {
            return ovals;
        }
     
        public void setOvals(int ovals) {
            this.ovals = ovals;
        }
    }
    */

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Et donc la question est ? Parce que personne ne vas coder à ta place je pense...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    De plus, faire un thread par souris ne serait pas la meilleure idée. tu vas t'encombrer avec des synchronisations alors qu'une simple boucle de traitement pas à pas ferait l'affaire.
    Mais c'est un conseil général, à appliquer dans la plupart des cas. Tu ne donnes pas assez de détails.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Peut être s'agit-il d'un cas d'"école" pour apprendre la synchronisation etc, d'ou le nombre de thread.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    slt,
    On a pas compris ton problème, pour espérer avoir une réponse, il faut d'abord poser une question.
    Amicalement, .

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/06/2015, 09h44
  2. [Débutant] Déplacer des Rectangles avec la souris
    Par Altair evilous dans le forum Développement Windows
    Réponses: 1
    Dernier message: 17/04/2014, 10h34
  3. Réponses: 1
    Dernier message: 23/04/2013, 22h21
  4. [DX9 - D3D] Déplacer des objets à la souris
    Par SixOfOne dans le forum DirectX
    Réponses: 7
    Dernier message: 21/11/2007, 21h07
  5. Déplacer des objets en temps réel avec la souris.
    Par johnnyjohnny dans le forum MATLAB
    Réponses: 4
    Dernier message: 03/07/2007, 14h54

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