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 :

dessiner en java


Sujet :

Graphisme Java

Vue hybride

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut dessiner en java
    salut,

    avec la methode paint j'ai dessiné un rectangle;
    j'ai cré un bouton, et quand je clique sur ce bouton je veux qu'il dessine des lignes dans le rectangle, en fait je veux qu'il execute juste les deux derniers ligne de la methode paint, est ce possible?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void paint(Graphics g){
    	g.drawRect(100, 100, WIDTH, HEIGHT);
    	int X=100;
    	while (X!=300){X=X+UNITE;
    	g.drawLine(100,X,300,X);}
                 // je veux executer ce qui suit quand je clique sur le bouton
    	Graphics2D ca=(Graphics2D)g;
    	ca.draw(creerAiguille());
       	}
    thx

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    en fait, ton composant doit avoir plusieurs états : un dans lequel il ne dessinera pas tout, et un dans lequel il dessinera les lignes supplémentaires. Si tu n'as que deux états, une variable booléenne (par exemple paintAiguille) suffira.

    Dans la méthode paint, tu testes la valeur de ta variable paintAiguille pour savoir si tu dois dessiner les lignes.

    Le bouton change juste la valeur de paintAiguille et appelle repaint().
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut ok
    yes ca marche; en fait j'avais déja essayé mais sans résultat car la fenetre se raffraichi pas! en revanche quand je deplace la fenetre hors ecran et que je la raméne, là je vois bien les new dessin.
    fo une commande spéciale pour raffraichir le dessin?

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Normalement, il suffit d'appeler repaint() sur le composant voulu. Ensuite, pour tout ce qui est déplacement/redimensionnement/minimisation, la jvm s'en charge toute seule.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Par défaut excellent
    ok ca marche, désolé étant débutant je ne fais pas attention a mon code assez automatiquement,

    derniere question ca genere bien une aiguilles, ensuite je veux faire une boucle :
    tant que le bouton arreter n'est pas cliquer
    {
    tu dessine des aiguilles
    }

    le pb c'est qu'il desssine les aiguilles a une vitesse monstrueuse et l'appli ne capte pas quand je clique sur le btn arreter, d'ailleur mon pc ne repond plus du tout! je dois redemarrer, la boucle prend toute les ressource a priori.
    je peux dire tu genere une aiguille toute les demi seconde...peut etre le timer?

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Ok, alors pour faire ça, je te conseille d'utiliser une liste pour stocker tes aiguilles (synchronisé, ça peut jouer).

    Pour peindre les aiguilles, tu parcours cette liste et tu dessines les formes qu'il faut.

    Pour ajouter des aiguilles, je te conseille un timer Swing (javax.swing.Timer) qui rajoute simplement une aiguille dans la liste tous les n temps.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

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

Discussions similaires

  1. dessin polygone java
    Par maid dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 29/05/2007, 13h56
  2. dessin réalisable? Java 2D ou autre
    Par TabrisLeFol dans le forum Graphisme
    Réponses: 19
    Dernier message: 19/04/2007, 12h00
  3. Dessiner en java avec plusieurs classes
    Par keub51 dans le forum 2D
    Réponses: 12
    Dernier message: 04/03/2007, 21h46
  4. dessin en java
    Par menuge dans le forum Graphisme
    Réponses: 4
    Dernier message: 01/06/2006, 18h36
  5. Dessiner en Java
    Par ankou82 dans le forum 2D
    Réponses: 15
    Dernier message: 07/04/2006, 10h28

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