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 :

developpement application en java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut developpement application en java
    bonjour
    je suis débutante en java et je dois faire un cercle comme étant objet et non plus comme un simple dessin
    je sais pas que doit etendre ma classe cercle
    class cercle extends .......
    s'il vous plait aidez moi .
    merci à l'avance

  2. #2
    Membre éprouvé Avatar de we.are.the.storm
    Profil pro
    Inscrit en
    Février 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 115
    Par défaut
    Qu'entends tu par un cercle en tant qu'objet et non plus comme un simple dessin ?
    • En Java tout est objet (sauf les types de base)
    • Pour faire un objet tu n'est pas obligée d'utiliser l'héritage

    Bref dis nous en un peu plus sur ce que tu as déja écrit et quel est ton but.

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    je veux un cercle comme objet càd lorsque je clique sur ce cercle je peux le déplacer ou l'aggrandir ....
    j'ai pensé en fait à dessiner ce cercle sur un jpanel.voici une partie de mon code.
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    public class Place extends /*CustomNode*/ JPanel implements MouseListener,ActionListener
     
    { 
        public Place(int x,int y,int width,int height )
       {
        this.x=x;
        this.y=y;
        this.width=width;
        this.height =height ;
        this.setBackground(Color.black);
        this.setVisible(true);
        this.setSize(25,25);
     
     
     
       this.addMouseListener(this);
     
     
        }
     
         public void actionPerformed(ActionEvent evt)
       {
     
     
        }
     
     
     
     
     
       public void paintComponent(Graphics g) 
     
       {             
           // super.paintComponent(g);
     
            //super.paintComponent(g);
            g.setColor(Color.red);
           // g.drawOval(0,0,10,10);
            g.fillOval(0,0,20,20);
        }
     
     
     
     
     
       public void mouseClicked(MouseEvent e)
    {
    }
     
        public void mousePressed(MouseEvent e) 
        {
     
        }
        public void mouseReleased(MouseEvent e) 
        {  
     
        }
     
        public void mouseEntered(MouseEvent e) 
        {
     
        }
     
        public void mouseExited(MouseEvent e) 
        {
     
        }
        public void mouseMoved(MouseEvent e)
        {
     
        }
     
        public void mouseDragged(MouseEvent e)
        {
     
        }
    }

  4. #4
    Membre éprouvé Avatar de we.are.the.storm
    Profil pro
    Inscrit en
    Février 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 115
    Par défaut
    Tu peux faire quelquechose comme ça par exemple:

    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
     
       private int rayon = 20;
       private int circleX = 200;
       private int circleY = 200;
     
       @Override
       public void paintComponent(Graphics g) 
     
       {             
            super.paintComponent(g);
            g.setColor(Color.red);
            g.fillOval(circleX,circleY,rayon,rayon);
       }
     
     
       public void mouseClicked(MouseEvent e)
        {
           switch(e.getButton())
           {
               case MouseEvent.BUTTON1:
                   this.rayon += 5;
                   this.repaint();
                   break;
               case MouseEvent.BUTTON2:
                   this.circleX = e.getX();
                   this.circleY = e.getY();
                   this.repaint();
                   break;    
                case MouseEvent.BUTTON3:
                   this.rayon -= 5;
                   this.repaint();
                   break;
           }
     
        }
    Je te laisse faire les tests qui vont bien (pas de rayon < 0 , etc...). Au niveau architecture il serait intéressant d'avoir une classe Cercle qui contient les propriétés du cercle (position, rayon et autres) en dehors de toute notion d'affichage puis d'utiliser ta classe Place pour gérer l'affichage.

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    peut être vous m'avez pas bien compris, maintenant mon problème est de construire tout d'abord le cercle parce que ce que j'ai fait(dessiner sur le jpanel) ne peut pas résoudre mon problème.
    je vous donne un exemple :pour dessiner un rectangle comme objet qui peut entendre les évènements de la souris j'ai fait class Rectangle extends JPanel.
    merci beaucoup

  6. #6
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    un JPanel sert également de conteneur.
    En d'autres termes, un JPanel (ton 'tableau blanc') peut contenir d'autres JPanel (les formes à dessiner).

    Autre solution, peut-être plus propre: tu peux faire une classe 'TableauBlanc' dérivant de JPanel qui contiendra une collection (LinkedList par exemple) de l'ensemble des formes (rectangles, cercles, ...). Ce sera ton objet graphique que tu inséreras dans ta fenêtre.
    Elle contiendra les méthodes pour ajouter/retirer un objet IForme (cf. ci-dessous), pour les redessiner la totalité du tableau (en itérant sur les formes qu'il contient), pour gérer les clics/drag and drop/... en déléguant éventuellement l'action associée à l'implémentation de ton IForme.

    Toutes les formes affichées dériveront d'une interface commune, par exemple IForme proposant des services génériques:

    - pour détecter les clics: IForme devra pouvoir dire si telle coordonnée 2D (typiquement les coordonnées de la souris) la concerne ou pas

    - pour se dessiner, une fonction prenant en paramètre un object Graphics

    - etc...

  7. #7
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Je ne suis pas un pro du dessin en java mais il me semble que tu ne peux pas manipuler de JPanel aussi facilement dans une zone de dessin.

    L'écouteur d'événement doit certainement être porté par la zone de dessin elle-même. A toi de savoir en fonction de la position et du type de clic ce qu'il advient de faire.

    Sinon de manière purement conceptuelle, un objet Cercle peut éventuellement implémenter Shape bien que cela ne soit pas nécessaire et a seulement deux attributs:
    - Point centre
    - int rayon (ou diamètre)
    Un cercle n'a initialement pas vocation à être manipulé par la souris et le clavier .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2007, 11h38
  2. Conseils Application serveur JAVA et base de données.
    Par Neutrino- dans le forum Persistance des données
    Réponses: 7
    Dernier message: 23/01/2007, 12h22
  3. Chiffrage application web java jsp hibernate
    Par padraig29 dans le forum Devis
    Réponses: 1
    Dernier message: 20/11/2006, 15h07
  4. capturer evenements application non java
    Par Finidrigoler dans le forum Langage
    Réponses: 4
    Dernier message: 02/08/2006, 11h29

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