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 :

Probleme de dimention et de mouseListener


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Par défaut Probleme de dimention et de mouseListener
    Salut,

    J'ai 2 problèmes, tout d'abord, un petit problème pas vraiment grave. Je veux faire une grille 8x8 alors j'ai fait ce petit code qui marche:
    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
        public void drawGrid(Graphics2D frame){
     
            for(int y=0; y< Constante.SQUARE_PER_COLUMN; ++y){
                for(int x=0; x<Constante.SQUARE_PER_LINE; ++x){
                    if((x+y)%2 == 0){
                        frame.setColor(Color.BLACK);
                    }
                    else{
                        frame.setColor(Color.WHITE);
                    }
                        frame.fillRect(y*Constante.SIZE_SQUARE, x*Constante.SIZE_SQUARE,
                                Constante.SIZE_SQUARE, Constante.SIZE_SQUARE);
                }
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public interface Constante {
        public static final int SIZE_X = 600;
        public static final int SIZE_Y = 600;
        public static final int SQUARE_PER_LINE = 8;
        public static final int SQUARE_PER_COLUMN = 8;
        public static final int SIZE_SQUARE = 600/8;
    }
    Si je n'ai pas fait une erreur de calcule ou de raisonnement, mon frame devrait avoir un taille de (Constante.SIZE_X , Constante.SIZE_Y) et pourtant c'est trop petit...

    Ensuite, j'ai un problème qui me tracasse un peu plus, j'arrive pas a faire marcher mon mouseListener
    Dans le constructeur de mon panel j'ai addMouseListener(new ControleurSouris());
    Mon ControleurSouris implémente tout ce qui faut, mais il devrait seulement agiravec mouseMove():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void mouseMoved(MouseEvent event) {
            System.out.println(event.getX());
        }
    Mais il n'y a rien qui affiche et je ne vois pas pourquoi

    Merci de votre aide

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Bonjour,

    En fait, tu mets du code mais je dirai pas vraiment le code qu'il faudrait
    Du coup, c'est pas évident de fixer le problème:
    Citation Envoyé par kilopoli Voir le message
    mon frame devrait avoir un taille de (Constante.SIZE_X , Constante.SIZE_Y) et pourtant c'est trop petit...
    Comment est défini ton frame? trop petit par rapport à quoi? il fait pas du 600*600 quand il s'affiche?

    Citation Envoyé par kilopoli Voir le message
    Mon ControleurSouris implémente tout ce qui faut
    C'est pareil, la dessus, on ne peut te croire que sur parole, on voit pas ce que cette classe implémente
    Essayes plutôt de définir sur ton panel un addMouseMotionListener à la place de ton addMouseListener, à mon avis!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JPanel jpanel = new JPanel(...);
    jpanel.addMouseMotionListener(new MouseMotionListener(){
    void mouseMoved(MouseEvent e){
    ...
    }
    });

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Par défaut
    Mon frame est de 600*600 mais mon quadrillage dépasse mon frame de genre 20 pixels en largeur et 40 en hauteur...

    Sinon pour mon mouseListener, il est vide, toutes les méthodes sont la pour que sa compile mais ne font rien... Et le mouseMotionListener ne convient pas parce que j'ai besoin du mouseClick et autre pour plus tard.

    Sinon je vois pas trop ce que tu veux que je rajoute, le constructeur de mon frame fait trois lignes et mon mouseListener a juste l'essentiel pour fonctionner. Si tu les veux, je te poste sa tantot, car je ne suis pas présentement devant mon ordi et mon code.

  4. #4
    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 : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par kilopoli Voir le message
    Mon frame est de 600*600 mais mon quadrillage dépasse mon frame de genre 20 pixels en largeur et 40 en hauteur...
    Problème classique : tu veux spécifier une taille pour la JFrame, mais tu oublis de gérer le cadre, les bordures, la barre d'entête.
    A la place, tu dois spécifier une taille pour le composant interne, puis faire un pack() sur ta JFrame.
    Sinon, le code complet nous serait utile.
    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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Par défaut
    Merci dinobogan, c'était effectivement ça mon problème pour la dimension de mon frame.

    Pour ma souris, c'est "réglé" car le mouseMove était seulement pour des fins de tests et si celui-ci ne marche pas, le mouseClick qui est plus important, marche

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

Discussions similaires

  1. petit Probleme dimention matrice
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 17/05/2015, 22h39
  2. Probleme MouseListener changement coordonnées
    Par MaInR0 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 01/04/2008, 09h58
  3. probleme code avec MouseListener
    Par kevin88 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 09/03/2007, 11h51
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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