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

AWT/Swing Java Discussion :

[Swing] Création d'un monBeanEvent


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut [Swing] Création d'un monBeanEvent
    bonjour a tous

    j'ai créé une bean composé un JtexteField et un jSlider qui écoutent tous deux la propriété valeur de mon bean et qui modifie et est modifié par les 2 composant



    donc pour l'instant si je modifie un des composants, la propriété valeur est modifié et par consequent l'autre est modifié en conséquence

    ce que je voudrais faire (sachant que je suis plutot novice en la matière) c'est créer un monBeanEvent qui porterai donc sur valeur de sorte que si un des composant de mon bean est modifié un ecouteur en prend connaissance

    comme dans cette exemple (mal fais avec paint) on aurait un jTexteField a chaque modif d'un composant du bean



    d'apres ce que k'ai compris je dois creer deux classe
    -infoEvent
    -infoListener
    (d'apres mes consigne)
    http://users.skynet.be/Marco.Codutti...an-complet.pdf

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut
    j'ai trouvé cet exemple que je vous met a dispo

    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
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
     /* Classe principale du beans (interface graphique)
    *    
    */
     
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.io.*;
    import java.beans.*;
    import java.util.*;
     
    public class ColorSelector extends JPanel implements AdjustmentListener, Serializable {
     
        private JScrollBar jscRouge = new JScrollBar(JScrollBar.HORIZONTAL);
        private JScrollBar jscVert = new JScrollBar(JScrollBar.HORIZONTAL);
        private JScrollBar jscBleu = new JScrollBar(JScrollBar.HORIZONTAL);
        private GridLayout gridLayout1 = new GridLayout(4, 1);
     
        // event
        private ArrayList tabChangedColorListeners = new ArrayList();
     
        public ColorSelector() {
            try {
                jbInit();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
     
        private void jbInit() throws Exception {
            // layout
            this.setLayout(gridLayout1);
     
            // parametre
            jscBleu.setMaximum(255);
            jscRouge.setMaximum(255);
            jscVert.setMaximum(255);
     
            // adding
            this.add(jscRouge, null);
            this.add(jscVert, null);
            this.add(jscBleu, null);
     
            // listeners
            jscBleu.addAdjustmentListener(this);
            jscRouge.addAdjustmentListener(this);
            jscVert.addAdjustmentListener(this);
        }
     
        /**
         * adjustmentValueChanged of scrollbars
         *
         * @param e AdjustmentEvent
         */
        public void adjustmentValueChanged(AdjustmentEvent e) {
     
            // Nouvel objet nouvelle couleur
            Color newColor = new Color(jscRouge.getValue(), jscVert.getValue(), jscBleu.getValue());
     
            // Nouveau event
            fireChangedColor(getBackground(), newColor);
            // Change la couleur du fond
            setBackground(newColor);
        }
     
        // event ChangedColorListener
        public void addChangedColorListener(ChangedColorListener ccl) {
            tabChangedColorListeners.add(ccl);
        }
     
        public void removeChangedColorListener(ChangedColorListener ccl) {
            tabChangedColorListeners.remove(ccl);
        }
     
        public void fireChangedColor(Color oldColor, Color newColor) {
            ChangedColorEvent tmpEvent = new ChangedColorEvent(this, newColor);
            for (int i = 0; i < tabChangedColorListeners.size(); i++) {
                ((ChangedColorListener) tabChangedColorListeners.get(i)).changedColor(tmpEvent);
            }
        }
     
        // setters
        public void setColor(Color col) {
            jscRouge.setValue(col.getRed());
            jscVert.setValue(col.getGreen());
            jscBleu.setValue(col.getBlue());
     
            setBackground(col);
        }
     
        // getters
        public Color getColor() {
            return getBackground();
        }
    }
     
     
    /* Objet évènement pour notre évènement personnalisé
    *
    */
     
    import java.util.EventObject;
    import java.awt.*;
     
    public class ChangedColorEvent extends EventObject {
     
        private Color color;
     
        // Constructeur
        public ChangedColorEvent(Object source, Color col) {
            super(source);
            color = col;
        }
     
        // getter
        public Color getColor() {
            return this.color;
        }
    }
     
     
    /* Interface pour l'évènement personnalisé
    *
    */
     
    import java.util.EventListener;
     
    public interface ChangedColorListener extends EventListener {
        public void changedColor(ChangedColorEvent cce);
    }
     
    Vous pouvez récupérer le code ici.
    La classe ColorSelector est celle qui représente le composant graphiquement, on lui a ajouté 3 scrollbares et on utilise le gridLayout pour les placer. Notez que nous avons nos 3 méthodes et un ArrayList:
     
        * addChangedColorListener(ChangedColorListener ccl)
        * removeChangedColorListener(ChangedColorListener ccl)
        * fireChangedColor (Color oldColor, Color newColor)
        * ArrayList tabChangedColorListeners
     
    qui servent à la gestion de notre évènement personnalisé (fireChangedColorListener est optionnelle mais elle permet de mieux structuré le code, ce que l'on cherche par l'utilisation de design pattern). Le membre : tabChangedColorListeners permet de stocker les différentes actions à effectuer lorsque la couleur change (c'est la méthode fireChangedColor qui permettra d'effectuer cette tâche).
     
    La classe ChangedColorEvent représente l'objet évènement qui est utilisé pour décrire notre évènement de changement de couleur. La méthode getColor permet de récupérer la nouvelle couleur.
     
    L'interface ChangedColorListener représente les différentes actions disponibles pour cette évènements (via les prototypes des méthodes qu'il faudra implémenter lors de l'utilisation). Ici nous en avons qu'une seule : changedColor.
     
    Comme vous pouvez le voir la création de Java Beans est vraiment très simple. Nous allons maintenant voir comment intégrer notre beans dans une application concrète.
     
    V. Intégration d'un JavaBeans dans une application
     
    Nous allons tout simplement utilisez le Java Beans crée au IV et l'intégrer dans une Frame. Un Java Beans est un composant comme un autre, il vous suffit donc de l'utiliser comme un JLabel. Voici le code qui nous permet de tester notre sélecteur de couleur.
     
    import javax.swing.JFrame;
    import java.awt.HeadlessException;
    // Import de notre Java Beans à ne pas oublier
    import com.labosun.cj.javabeans.colorselector.*;
    import javax.swing.*;
    import java.awt.*;
     
    public class ColorSelectorFrameTest extends JFrame {
     
        ColorSelector cs;
        JLabel lblTest;
     
        public ColorSelectorFrameTest() throws HeadlessException {
            // Inits
            cs = new ColorSelector();
            lblTest = new JLabel("Couleur");
     
            // Quitte l'application quand on ferme
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(100, 300);
            this.getContentPane().setLayout(new BorderLayout());
     
            // add
            this.getContentPane().add(cs, BorderLayout.CENTER);
            this.getContentPane().add(lblTest, BorderLayout.SOUTH);
     
            // Listener
            cs.addChangedColorListener(new ChangedColorListener() {
                /**
                 * changedColor
                 *
                 * @param cce ChangedColorEvent
                 */
                public void changedColor(ChangedColorEvent cce) {
                    lblTest.setText(cce.getColor().toString());
                }
            });
        }
     
        // main
        public static void main(String[] args) {
            new ColorSelectorFrameTest().show();
        }
    }
     
    Vous pouvez remarquer que nous n'avons pas de particularités dans le code, nous utilisons notre sélecteur de couleur comme un JLabel ou un JButton (ajout de listeners, paramétrage du composant)... Vous pourrez trouver le code source ici et le jar executable de l'application ici.
     
    Conclusion

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/04/2009, 12h45
  2. Création d'un calendrier en Swing ?
    Par anaranjado dans le forum Composants
    Réponses: 5
    Dernier message: 17/02/2009, 11h07
  3. [Débutant][Swing] Création de Puzzle
    Par ould64 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 21/12/2007, 16h58
  4. [Swing][JTable] création d'un filtre d'affichage
    Par TheMorpheus dans le forum Composants
    Réponses: 2
    Dernier message: 25/04/2006, 11h50
  5. [Swing] Création d'une interface graphique SWING + MVC
    Par Sylmandel dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/04/2006, 09h03

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