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

  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 : 43
    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 : 43
    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 .

  8. #8
    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
    Citation Envoyé par Heimdal Voir le message
    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.
    On peut, en ne spécifiant pas de layout à ton conteneur (en l'occurence ton JPanel): Doing Without a Layout Manager (Absolute Positioning) (ou encore mieux: en faisant son propre layout personnalisé).
    Mais dans ce cas, c'est bien évidemment la responsabilité du développeur de faire tous les positionnements, dimensionnements, etc... à la main.

  9. #9
    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
    Diable! Et moi qui ai toujours cru qu'il fallait un LayoutManager :o

  10. #10
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    merci à tous
    maintenant je veux relier entre chaque cercle (place) et chaque rectangle par une ligne(ou arc avec flèche).
    (notez que je peux dessiner le rectangle ou le cercle où je clique dans la frame à l'aide du mouseClicked du frame).

  11. #11
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    salut
    s'il vous plait répondez moi.
    j'ai un probleme avec jcolorchooser .
    je n'arrive pas à colorer mon objet(rectangle qui hérite du jpanel)
    suite à un click sur une couleur du jcolorchooser puis le boutton ok que j'ai ajouté à la fenetre du
    jcolorchooser .voici mon code(sachant que Transition est le nom de mon rectangle que je veux colorer et couleur est le nom du jcolorchooser) :
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    public class Coloration extends javax.swing.JFrame {
        Transition t;
        /** Creates new form Coloration */
            public Coloration(/*Transition t*/) 
        {   
            //this.t=t;
            initComponents();
            this.setBounds(200,200,450,450);
     
        }
       /* public Coloration()
        {
        }
       */
     
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        private void initComponents() {
            Pourcoloration = new javax.swing.JColorChooser();
            ok_coloration = new javax.swing.JButton();
            quitter_coloration = new javax.swing.JButton();
     
            setTitle("vous pouvez choisir une couleur");
     
            ok_coloration.setLabel("ok");
            ok_coloration.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ok_colorationActionPerformed(evt);
                }
            });
     
            quitter_coloration.setLabel("quitter");
            quitter_coloration.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    quitter_colorationActionPerformed(evt);
                }
            });
     
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
                            .add(78, 78, 78)
                            .add(ok_coloration)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .add(quitter_coloration)
                            .add(10, 10, 10))
                        .add(layout.createSequentialGroup()
                            .addContainerGap()
                            .add(Pourcoloration, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(106, 106, 106))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .addContainerGap()
                    .add(Pourcoloration, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(18, 18, 18)
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(ok_coloration)
                        .add(quitter_coloration))
                    .addContainerGap(22, Short.MAX_VALUE))
            );
            pack();
        }// </editor-fold>                        
     
        private void ok_colorationActionPerformed(java.awt.event.ActionEvent evt) {                                              
    Color couleur;
    couleur=this.Pourcoloration.getColor();
    t.setBackground(couleur);
        }                                             
     
        private void quitter_colorationActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        this.setVisible(false);
        }                                                  
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Coloration().setVisible(true);
                }
            });
        }
     
        // Variables declaration - do not modify                     
        public javax.swing.JColorChooser Pourcoloration;
        private javax.swing.JButton ok_coloration;
        private javax.swing.JButton quitter_coloration;
        // End of variables declaration                   
     
    }
    remarque :je dois entrer Transition t comme argument dans le constructeur car c'est l'objet que je selectionne pour être coloré ,mais lorsque je le fait entrer ,en exécutant le jcolorchooser n'apparait pas comme précédement et en supprimant Transition t du constructeur le jcolorchooser apparait
    merci .

  12. #12
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    bonjour j'ai résolu le problème de jcolorchooser et voila le code qui marche tres bien .
    package reseaux_de_petrie;
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.*;
     
    public class Coloration1 extends javax.swing.JFrame implements ActionListener,MouseListener,ItemListener
    {
        public javax.swing.JColorChooser Pourcoloration;
        private javax.swing.JButton ok_coloration;
        private javax.swing.JButton quitter_coloration;
        Transition t;
        Proprietés p;
        /** Creates new form Coloration */
            public Coloration1(Transition t) 
        { 
            this.t=t;
            initComponents();
            this.setBounds(200,200,450,450);
            p=new Proprietés(t);
        }
     
     
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        private void initComponents() {
            Pourcoloration = new javax.swing.JColorChooser();
            ok_coloration = new javax.swing.JButton();
            quitter_coloration = new javax.swing.JButton();
     
            setTitle("vous pouvez choisir une couleur");
     
            ok_coloration.setLabel("ok");
            ok_coloration.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ok_colorationActionPerformed(evt);
                }
            });
     
            quitter_coloration.setLabel("quitter");
            quitter_coloration.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    quitter_colorationActionPerformed(evt);
                }
            });
     
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
                            .add(78, 78, 78)
                            .add(ok_coloration)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .add(quitter_coloration)
                            .add(10, 10, 10))
                        .add(layout.createSequentialGroup()
                            .addContainerGap()
                            .add(Pourcoloration, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(106, 106, 106))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .addContainerGap()
                    .add(Pourcoloration, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(18, 18, 18)
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(ok_coloration)
                        .add(quitter_coloration))
                    .addContainerGap(22, Short.MAX_VALUE))
            );
            pack();
        }// </editor-fold>                        
    //Pourcoloration est le nom du composante JColorchooser
        private void ok_colorationActionPerformed(java.awt.event.ActionEvent evt) {                                              
       Color couleur;
       couleur=this.Pourcoloration.getColor();
       t.setBackground(couleur);
     
       /* Color couleur_transition;
        couleur_transition=t.getBackground();
        */
        p.pan_coloration.setBackground(couleur);//pan_coloration est le nom du panel ds proprietes
     
        }                                             
     
        private void quitter_colorationActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        this.setVisible(false);
        }                                                  
     
        /**
         * @param args the command line arguments
         */
     
        public void actionPerformed(ActionEvent e) {
        }
     
        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 itemStateChanged(ItemEvent e) {
        }
     
     
     
    }

  13. #13
    Membre averti
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Par défaut
    bonjour
    je veux relier entre deux dessins(qui peuvent se déplacer suivant le déplacement de la souris) par une flèche mais je ne sais pas comment dessiner la flèche (j'ai deja fait ça mais avec un arc et pas une flèche).
    est ce que quelqu'un peut m'aider
    merci d'avance

+ 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