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

2D Java Discussion :

débutant->prob avec Graphics


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 94
    Par défaut débutant->prob avec Graphics
    Bonjour je suis un super débutant en java.

    Je voudrais dessiner un trait dans un jpanel, pour ce faire je souhaite utiliser la classe Graphics.
    J'ai bien chérché mais je n'y arrive pas.

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class JCanvas extends JPanel  {
            public JCanvas(){
     
                this.setBackground(Color.WHITE);
                Graphics g = getGraphics();
                g.drawLine(0, 0, 5, 5);
            }
     
        }
    Il me dit qu'il y a un problème de pointeur(sur la ligne drawline).

    Je ne veut pas faire qq'ch de compliqué, simplement faire une sorte de jpanel avec un trait dedans.

    d'avance merci de votre aide.

  2. #2
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2003
    Messages : 608
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class JCanvas extends JPanel  {
            public JCanvas() {
                this.setBackground(Color.WHITE);
            }
    
            public void paintComponent(Graphics g) {    
                super.paintComponent(g);
                g.drawLine(0, 0, 5, 5);
            }
     
        }


    EDIT : oubli de "public void" de ma part !!

  3. #3
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut
    Ceci devrais mieux fonctionner :

    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 JCanvas extends JPanel  {
     
            public JCanvas(){
     
                   setBackground(Color.WHITE);
            }
     
            public void paintComponent(Graphics g) {
     
                   super.paintComponent(g);
                   g.drawLine(0, 0, 50, 50);
            }
    }

  4. #4
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut
    lol... bon ok j'me suis fais eu...

  5. #5
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2003
    Messages : 608
    Par défaut
    Developpez.com est le seul forum où les gens courent, se bousculent, se ruent, s'entre-déchirent, pour venir en aide aux débutants !!

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 94
    Par défaut petite question
    Tout d'abord merci pour vos réponses, en effet ca marche, en ce sens que ca fait précisement ce que je voulais...Mais je ne comprend pas pourquoi.

    La methode "public void paintComponent(Graphics g)", ce déclanche a quel moment et pourquoi?

    Et le graphics g, passé en paramètres, il sort d'ou celui là? Puisque je n'apelle pas cette methode, vous me direz que je n'ai pas besoin de savoir d'ou il sort, mais j'aimerais comprendre le mécanisme car vous imaginez bien qu'a terme, l'application va dessiner des choses plus complexes, et j'aimerai déclancher les evenement moi meme.

    Encore merci.

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait cette méthode est appelée à chaque fois que l'application a besoin de redessiner le panel (redimensionnement, appel à la méthode repaint(), passage en premier plan) en fait il ne faut pas l'appeler directement, en général un repaint() suffit, si tu as bien fait la chose bien sûr

  8. #8
    Membre expérimenté Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Par défaut
    Et le graphics g, passé en paramètres, il sort d'ou celui là?

    en fait, à chaque fois qu'un composant a besoin de se redessiner, il y a un appel à la méthode paint(Graphics g). g est le contexte graphique donnée par le système au composant pour qu'il se dessine. C'est le système qui se débrouille pour donner un contexte "valide". La méthode paintComponent est appellée en tout premier (c'est en général là qu'on met les images de fond par exemples), ensuite paint est appellée, et on peut dessiner dessus. Pour plus d'information sur les contextes graphiques, un seul moyen :

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

Discussions similaires

  1. [DéBUTANT]Prob avec RegQueryValue
    Par alainpeniche dans le forum C++
    Réponses: 3
    Dernier message: 01/08/2005, 23h57
  2. [débutant] Prob avec Tree ctrl
    Par Devether dans le forum MFC
    Réponses: 3
    Dernier message: 24/03/2004, 11h36
  3. Prob avec dates delphi
    Par ericmart dans le forum ASP
    Réponses: 6
    Dernier message: 20/10/2003, 17h51
  4. prob avec utilisation de package
    Par martijan dans le forum Modules
    Réponses: 13
    Dernier message: 11/07/2003, 09h37
  5. Thread probs avec WaitFor()
    Par pixelrock dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/11/2002, 09h40

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