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

Langage Java Discussion :

"ajouter une méthode dans une méthode"


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 95
    Points : 60
    Points
    60
    Par défaut "ajouter une méthode dans une méthode"
    Bonjour,

    j'ai un problème avec une interface graphique, c'est plutôt un problème de méthode qu'un problème graphique en fait :

    Je crée une JFrame depuis mon main, et cette JFrame crée un Jpanel, voilà le code qui marche sans la méthode ajouter_Rectangle_plein :


    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
     
    class Panneau extends JPanel{
     
     
     
        public void paintComponent(Graphics g){
            super.paintComponents(g);
            //g.drawRect(20,10,60,40);
            //g.drawOval(150,40,200,45);
            int taillegrille=10;
     
            infoEcran iecran = new infoEcran();
     
            //setSize(iecran.getLargeur() -2 , iecran.getHauteur()-40);
     
     
            for (int i=1; i<= taillegrille;i++){
                g.drawLine( (iecran.getLargeur() / taillegrille)*i, 0 ,(iecran.getLargeur() / taillegrille)*i, iecran.getHauteur()-10);
                g.drawLine(0, (iecran.getHauteur() / taillegrille)*i, iecran.getLargeur()-10,  (iecran.getHauteur() / taillegrille)*i );
            }
     
     
            public void ajouter_Rectangle_plein(int x, int y, int width, int height){
                    g.fillRect(x,y,width,height);
            }
     
     
        }
    }
    J'arrive à créer ma fenêtre avec mes dessins, mais j'aimerai lors de l'éxecution du main mettre à jour ces dessins! comment puis-je ajouter une méthode pour l'appliquer à mon objet Graphics "g", sachant que pour créer mon panneau je l'appelle avec :

    pan = new Panneau();

    j'ai donc essayé d'ajouter la méthode ajouter_Rectangle_plein, mais c'est pas possible (j'ai qd même tenté)! Je vois pas trop comment je pourrai mettre à jour mes graphiques.


    De quelle manière dois-je m'y prendre pour ajouter une méthode depuis mon main, qui appellera une méthode présente dans Fenetre (qui hérite de JFrame), et qui appellera une méthode dans panneau?

    Je peux appeller une méthode dans Fenetre normalement sans problème, mais comment créer une méthode dans JPanel alors que les graphiques sont crée avec paintComponent qui a été surchargé!



    Je ne suis pas certain d'avoir été très clair dans mon explication (c'est pas simple à expliquer non plus)... si vous ne comprenez pas, n'hésitez pas à me demander[/code]

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    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 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Il suffit de créer une liste d'objet possédant une interface commune (disons IElement) dans ta classe Panneau.

    Pas testé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface IElement {
        public void paint(Graphics g);
    }
    Rectangle Plein
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class RectanglePlein implements IElement {
        int x,y; // Point
        int width, height;  // Dimension
        Color color;
     
        public RectanglePlein (...){
           ...
        }
     
        public void paint(Graphics g) {
             g.fillRect(x,y,width,height);
        }
    }
    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
     
    class Panneau extends JPanel{
     
        List elements = new Vetcor(); 
     
        public void addElement(IElement element) {
            elements.add(elements)
        }   
     
        public void paintComponent(Graphics g){
            super.paintComponents(g);
            //g.drawRect(20,10,60,40);
            //g.drawOval(150,40,200,45);
            int taillegrille=10;
     
            infoEcran iecran = new infoEcran();
     
            //setSize(iecran.getLargeur() -2 , iecran.getHauteur()-40);
     
     
            for (int i=1; i<= taillegrille;i++){
                g.drawLine( (iecran.getLargeur() / taillegrille)*i, 0 ,(iecran.getLargeur() / taillegrille)*i, iecran.getHauteur()-10);
                g.drawLine(0, (iecran.getHauteur() / taillegrille)*i, iecran.getLargeur()-10,  (iecran.getHauteur() / taillegrille)*i );
            }
     
           for (Iterator i = list.iterator(); i.hasNext();) {
               IElement element = (IElement)inext();
               element.paint(g);
           }
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        /* */
       Pannneau panneau = new Panneau();
     
       IElement element = new RectanglePlein (0,0, 4, 3, Color.GREEN));
       panneau.add(element);
       element = new RectanglePlein (5,6, 2, 7, Color.RED );
       panneau.add(element);
    Bien le bonjour chez vous
    Jowo

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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