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

Graphisme Java Discussion :

Débutant - Graphisme 2D


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 51
    Par défaut Débutant - Graphisme 2D
    Salut à tous,

    bon je comprends rien au concept de programmation objet mais je suis obligé de m'y mettre alors... j'ai des gros problèmes !!!

    Voilà ma question : pour dessiner un rectangle dans une fenêtre, le code suivant est - il le plus simple pour y arriver ? (C'est le mien et il marche bien mais je trouve ça tordu de redéfinir paintComponent et tout ça, par rapport au basic...)

    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
     
    import java.awt.*;
    import javax.swing.*;
     
    public class Graph2 
    {
    	public static void main(String[] args) 
    	{
    		JFrame fenetre = new JFrame();
    		fenetre.setName("Fenêtre Graphique");
    		fenetre.setSize(600, 600);
    		Rect r1 = new Rect();
     
    		fenetre.add(r1);
     
    		fenetre.setVisible(true);
    	}
    }
     
    class Rect extends JPanel
    {
    	public void paintComponent (Graphics g)
    	{
    		g.setColor(Color.BLACK);
    		g.drawRect(20, 20, 100, 300);
    	}
    }
    Merci à vous !!

  2. #2
    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
    Sisi c'est bien ce qu'il faut faire, toute les opérations de dessin du panel sont à effectuer dans cette méthode

    Eventuellement fait un appel à super.paintComponent(g) dans ton paintComponent pour que ton panel se redessine correctement

  3. #3
    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
    j'ajouterai que cette méthode est plus réservée pour le dessin du composant... Si tu veux dessiner dessus (t'en servir comme d'un canvas) tu peux surcharger la méthode paint(Graphics g)


  4. #4
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 51
    Par défaut
    Merci Sinok !

    Mais Dazz, j'ai surchargé paint au lieu de paintComponent et si j'essaie de dessiner une deuxième fois dans la fenetre,ça efface la première fois, tu as une idée ? Ou j'ai ptêt mal compris...

  5. #5
    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
    Qu'est-ce que tu entends par dessiner une deuxième fois ?

  6. #6
    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
    Pour le dessin comme tu cherches à le faire reste sur paintComponent
    Et si tu veux que tes dessins restent en mémoire il faut que tu les srocke dans une structure typa ArrayList et que tu les redessine à chaque fois dans le paintComponent (enfin si tu cherche à utiliser ce panel pour contenir d'autres composants (boutons et tout le toutim)

  7. #7
    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
    merci Sinok, c'est ce que j'entendais par "t'en servir comme canvas", mais je me suis mal exprimé !

  8. #8
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 51
    Par défaut
    et j'imagine que le arry list tu le passes en paramètre de la classe à chaquez fois que tu redessines un truc en plus non ?

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

Discussions similaires

  1. [Graphisme][Débutant(e)] Problème sur repaint()
    Par Katyucha dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 08/10/2004, 17h12
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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