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

 Java Discussion :

Dessiner dans un JPanel apartir d'une autre class


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut Dessiner dans un JPanel apartir d'une autre class
    Bonjour tous le monde je suis un débutant dans le dessin Graphics en Java
    je n'arrive pas a dessiner une ligne ou plusieur dans une autre classe pas celle qui extends le JPanel
    je vous donne la classe qui extends le JPanel :


    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    package environnement;
    import java.awt.*;
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
     
     
    public class Dessin extends JPanel  {
            private Image drawingImage;
        private ImageIcon image;
        private Graphics g;
        private Graphics2D g2;
       public  int x,y,w,z;
    public Dessin(int x,int y,int w,int z){
      this.x=x;
      this.y=y;
      this.w=w;
      this.z=z;
    repaint();
    }
     
       public  Dessin() {
        x=1;y=1;z=100;w=300;    
       repaint(); 
       }
    void initialiser(){
    // super.paintComponent(g);   
                 Dimension dim=getSize();
    		drawingImage = this.createImage(dim.width,dim.height);
    		g = super.getGraphics();
                 super.setSize(new Dimension(800,700));
                 super.setBackground(Color.white);
                 super.setPreferredSize(new Dimension(600,600));
                    Graphics2D g2 = (Graphics2D)g;
                    // g2.drawLine(x+2,y+3,z+70,w+10);
               	}
    public Graphics getImageGraphics(){
    	  if (super.getGraphics() == null)
    	initialiser();
    	  return super.getGraphics();
     
        }
     
        public void paintComponent(Graphics g) {
             super.paintComponent(g);   
    	  initialiser();
              image=new ImageIcon("turtleLeft.jpg");
               image.paintIcon(this, g, 280,280);
     
                    g2 = (Graphics2D)g;
                  // g2.drawLine(x-x, y-y, w, z);
     
             }
         public void update() {
           Graphics gg=this.getGraphics();
           this.paintComponent(gg) ;
     
        }
    }
    //_______________________________________________

    et la classe ou je faire dessiner mes drawline :
    j'ai essayer plusieur methode (maniere) mais aucune ne marche j'ai mis chaque methode en commentaire
    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
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package commandes;
     
    import environnement.Dessin;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Image;
     
    /**
     *
     * @author brahim
     */
    public class Reculer extends Dessin{
      Dessin dessin = new Dessin(400, 0, 0, 400);
       private  Graphics gdessin;
        //private final Graphics2D g2dessin;
     
        public Reculer() {
            // Premiere maniere mais elle ne marche pas 
       //     super(400, 0, 0, 400);
            // deuxieme maniere mais elle ne marche pas
     
       // gdessin = dessin.getImageGraphics();
     
       // g2dessin = (Graphics2D)gdessin;
       // gdessin.drawLine(400, 0, 0, 400);
     
       // Troisieme maniere mais elle ne fonctionne pas
       // Dessin dessin = new Dessin(400, 0, 0, 400);   
        }
    }
    je sais qu'il y a un truc qui m'échappe dans l'histoire mais je sais pas lequel

    merci les gens .

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut Si ca peut vous aider
    Si ca peut vous aider les gens
    je veux qu'a chaque fois que je clique sur reculer
    mon dessin ce met a jours et dessine une ligne sur mon JPanel et garde les ligne desja faite ( j'ai d'autre classe controleur et modele ou j'ai pas de probleme )
    la seule etape ou je coince c'est quand mon programme arrive a reculer ca me met des erreurs .
    Merci

  3. #3
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Salut,

    Pour moi si tu veux afficher ta zone de Dessin qui est un JPanel il faut l'ajouter dans un JFrame

    c'est une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Ma fenetre extends JFrame{
     
    public mafenetre() {
     new Layout ( new BorderLayout());
     
    Dessin dess = new Dessin();
    .add ( dess , BorderLayout.Center)
     
    // comme sa tu peux mettre ton bouton refresh en dessous pour la beauté :D.
     
    et sur ton bouton c'est une fonction reculer si j'ai bien compris pour ton cas
    dess.Refresh ou dess.UPDATEUI()
    }
    }
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut Merci
    Merci man
    pour mon JPanel il est déja inseré dans mon container de mon JFrame
    tout est OK coté affichage mon Controleur et Vue il s'affiche correctement mais
    quand je clique sur reculer il y'a une instanciation de la classe reculer qui se cree mais
    je sais pas quoi mettre dans la methode refresh que vous avez dis et le probleme aussi je veux qu'a chaque fois quand clique sur reculer ma ligne se cree mais les ligne deja faite reste dans le JPanel

  5. #5
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    d'accord je comprend mieux. Alors tu n'as pas le choix il faut que tu fasses un tableau, ArrayList mon type préféré.

    Quand tu cliques sur ton bouton tu ajoutes à ton arrayList une ligne et tu refresh ton panel.

    pour l'idée tu stock à un endroit un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList<Ligne> Dessin= new ArrayList<Ligne>() ;
    quand tu cliques sur ton bouton sa fait
    puis
    dans ton paintComponent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ( Parcours du tableau)
    {
      g.draw(tab[i])
    }
    Je ne sais si j'ai été claire, mais en fais tu n'as pas le choix si tu veux sauvegarder toutes tes lignes c'est dans un tableau et quand tu rajoutes tu repaint le tout
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut
    je n'ai pas très bien compris
    tu veux dire Liste ou tableau la déclaration de vous avez fait c'est une liste
    tab[i] ou Dessin[i]
    et g.drawLine(un tableau );
    je crois pas que ca va marcher par ce que il va dire int,int,int,int recquired et nous on a passer en parametre qu'une variable.

Discussions similaires

  1. Réponses: 9
    Dernier message: 15/03/2010, 14h55
  2. Réponses: 12
    Dernier message: 11/11/2005, 14h25
  3. Dessiner dans différents JPanels
    Par N@sH dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/05/2005, 15h39
  4. Ajouter du texte dans un input à partir d'une autre fenêtre
    Par Michaël dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2005, 20h14
  5. Dessiner dans un JPanel
    Par Oliveuh dans le forum Composants
    Réponses: 5
    Dernier message: 19/07/2004, 12h13

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