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

Agents de placement/Fenêtres Java Discussion :

visibilité de graphics2d


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Septembre 2008
    Messages : 145
    Par défaut visibilité de graphics2d
    bonjour,

    J'ai une classe qui trace un rectangle situé dans le meme package que main (qui dispose de graphics2D g ainsi qu'une imagebuffered). J'ai créé une classe qui affecte les variables mais le problème c'est que je ne peux pas appeler draw de ma classe car il faut lui transmettre g et je ne l'ai pas sous main ... comment je peux faire ?

    voici le code de ma classe:
    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
    package Ma;
     
    import java.awt.Color;
    import java.awt.Graphics2D;
     
    public class Rect {
    	static int xr=0,yr=0,dxr=100,dyr=100;
    	public void draw(Graphics2D g){
    		drawRect(g);
    	}
    	public void drawRect(Graphics2D g){
    		g.setColor(Color.BLACK);
    		g.drawRect(xr, yr, dxr, dyr);
    	}
    	public void setRect(int x, int y, int dx, int dy){
    		xr=x;
    		yr=y;
    		dxr=dx;
    		dyr=dy;
    	}
     
    	public void update(Graphics2D g){
     
    	}
    }
    merci d'avance

    greg

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 914
    Billets dans le blog
    54
    Par défaut
    La plupart du temps, tu obtiens automatiquement ce Graphics via l'EDT de Swing qui appelle pour toi les methodes de dessins des composants graphiques. Tu peux donc surcharger ces methodes (paintComponent() par exemple) pour y inclure des appels a tes propres composants et entites de maniere a la dessiner sur le Graphics qui t'es founi. La meme chose se passe quand tu essaies d'imprimer et que tu recois un Graphics representant l'imprimante en argument. Les seuls moment ou tu peux etre ammene a creer ton propre Graphics c'est quand tu utilises celui d'une image que tu auras initialise toi-meme.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Est ce que tu peux détailler un peu plus to code stp?
    J'ai le même pb que toi mais je n'y arrive pas.
    Comment tu fais pour surcharger la méthode?

    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 914
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par tanguy.L Voir le message
    Comment tu fais pour surcharger la méthode?
    A ce niveau de question il est plutot conseille de reprendre les cours de programmation orientee objets a zero.

    Voici le squelelette de base d'une petite application de test.

    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
     
    package test;
     
    import java.awt.*;
    import javax.swing.*;
     
    public class Test extends JPanel {
      /**
       * {@inheritDoc}
       */
      @Override
      protected void paintComponent(Graphics g) {
        // Dessin du fond du panneau.
        super.paintComponent(g);
        // Dessiner ici.
        [...]
      }
     
     /**
      * Point d'entree du programme.
      * @param args Arguments de la ligne de commande.
      */
      public static void main(String... args) {
        // Demarrage dans l'EDT.
        SwingUtilities.invokeLater(new Runnable() {
          /**
           * {@inheritDoc}
           */
          @Override  
          public void run() {
            JFrame frame = new JFrame("Test");
            // Fermer la fenetre termine l'execution du programme.
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE));
            // Ajout du composant dans la fenetre.
            frame.setLayout(new BorderLayout());
            frame.add(new Test(), BorderLayout.CENTER);
            // Taille par defaut.
            frame.setSize(500, 500);
            // Centrage sur l'ecran.
            frame.setLocationRelativeTo(null);
            // Rendre la fenetre visible.
            frame.setVisible(true);
          }    
        });
      }
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. [Swing][Graphics2D] dessiner une flèche
    Par Galima dans le forum 2D
    Réponses: 13
    Dernier message: 04/12/2011, 00h31
  2. Visibilité d'une variable
    Par nenoeil dans le forum Langage
    Réponses: 3
    Dernier message: 09/07/2004, 15h14
  3. [SWING]Bouton et Graphics2D
    Par mush_H dans le forum 2D
    Réponses: 3
    Dernier message: 02/07/2004, 16h35
  4. visibilite de mon serveur sur internet
    Par jabaka dans le forum Apache
    Réponses: 9
    Dernier message: 03/05/2004, 15h22
  5. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 19h33

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