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 :

Table à Dessin


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 167
    Par défaut Table à Dessin
    Bonjour,

    Je suis débutant dans le dessin en Java.
    Je souhaiterais créer une table à dessin en swing.

    Mon premier pb c'est que concrètement je ne sais pas ce que doit être la table à dessin ? je crois avoir lu que c'était une classe qui hérite de JComponent, nan ? et ensuite je fais quoi ? un JPanel qui représentera ma zone à dessin ?

    Ensuite les écouteurs sur les clic de souris, je les construits comment, et sur quoi ?

    Merci.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Cela depend de ce que tu entends exactement par "table a dessin". S'il s'agit d'un composant d'une certaine taille sur la surface duquel tu veux pouvoir dessiner a la souris, cela s'appelle plus communement canvas (note : je ne parle pas ici de la classe Canvas) ou encore surface de rendu/dessin.

    Dans ce cas oui, une classe maison heritee de JComponent ou de JPanel fera tres bien l'affaire. Les ecouteurs de clics de souris sont a mettre sur cette classe. Une erreur courante est, a la reception d'un clic, de recuperer le Graphics d'un composant via getGraphics() et de dessiner directement dedans ; c'est quelque chose a ne pas faire*. Tu dois effectuer un traitement en reaction du clic et appeler repaint() pour demander le rafraichissement de l'interface graphique.
    Le probleme consiste alors pour toi a trouver un moyen de rendre ton dessin permanent en gardant une trace de ce que tu as dessine. Generalement, cela peut etre fait de deux maniere :

    - lors de la reception du clic de la souris, tu dessines sur une image intermediaire (BufferedImage) contenue dans ce composant, puis tu appelles repaint(). La methode paintComponent() de ce composant se charge alors de dessiner cette image a l'ecran (on parle de composer l'image sur l'ecran). Si tu comptes realiser un logiciel de dessin bitmap, tu auras plus tendance a aller de ce cote.

    - lors de la reception du clic de la souris, tu ajoutes un point dans une liste des points a colorier, puis tu appelles repaint(). La methode paintComponent() de ce composant se charge alors de parcourir cette liste et de colorier les pixels equivalents a l'ecran. Si tu comptes realiser un logiciel de dessin vectoriel ou si tu veux pouvoir dessiner et redimensionner des formes geometriques, tu auras plus tendance a aller de ce cote (et tu apprendra a gerer des formes plutot que de simples points). Cependant si au bout d'un certain temps ta liste de formes devient trop grosse, tes performances peuvent s'effondrer ; tu peux alors optimiser les performances en couplant cette solution avec la premiere pour eviter de redessiner toutes les formes a chaque fois.

    Autre optimisation : dans un premier temps, puisque tu debutes, tu te contenteras d'appeler repaint() pour effectuer le re-affichage de l'interface. Quand tu auras une tres grosse image ou une longue liste de formes a gerer tu auras probablement envie d'optimiser un peu tout ca. Dans ce cas il ne faut pas hesiter a appeler la methode apparentee repaint(x, y, longueur, hauteur) qui ne rafraichie qu'une partie de l'affichage. En contrepartie, tu devras verifier dans la methode paintComponent() que ce que tu dessines est bien dans la zone de clip du Graphics (g.getClip()) de maniere a ne pas perdre du temps en dessinant des chose inutiles.

    *La raison est que plus tard lorsque le composant sera raffraichit (par exemple apres avoir ete occulte), tout ce qui aura ete dessine disparaitra.
    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 confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 167
    Par défaut
    Ok merci bcp.
    ça a l'air compliqué mais ça me donne des infos. Je vais pouvoir orienter mes recherche.
    J'espère pas avoir besoin de revenir, à par pour vous dire que mon projet a aboutit

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 4
    Par défaut diagramme de classe
    salut, comment faire un diagramme de classe avec java2D

    merci

Discussions similaires

  1. Peut-t-on dessiner un cube à partir de plusieurs tables de faits ?
    Par zerocoolyoussef dans le forum Mondrian
    Réponses: 7
    Dernier message: 04/12/2009, 10h55
  2. quel Widget convient mieu pour une table de dessin?
    Par Txiki dans le forum Débuter
    Réponses: 8
    Dernier message: 14/08/2009, 11h44
  3. Dessiner une courbe en visual basic a partir d'une table excel
    Par jasmin_76 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2009, 08h27
  4. Table à dessin dynamique en Flash
    Par rafmos dans le forum Flash
    Réponses: 0
    Dernier message: 13/02/2008, 12h45
  5. Réponses: 1
    Dernier message: 04/05/2007, 16h59

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