Creation d'un composant

lagaman Messages postés 8 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 6 avril 2008 - 2 mai 2006 à 13:16
lagaman Messages postés 8 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 6 avril 2008 - 2 mai 2006 à 14:44
bonjour,

Dans l'optique de réutiliser du codes je voudrai créer un composant.
Mon but et de créer un composant qui envoie un event : actionevent.

Ci dessous le debut d'un de mes composants:
Mon premier probleme c'est que lorsque j'instencie mon objet il ne s'affiche pas:

PS : Au fait si vous connaissez un bon tutorial pour créer descomposant avec generation des event je suis preneur. J'ai regardé le code de java.awt.button mais j'ai pas tout compris.

Merci






<hr>


Class appelant mon composant



package jdv;



import java.awt.Panel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import com.borland.jbcl.layout.XYConstraints;
import javax.swing.JButton;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import java.awt.Graphics;



public class Grille extends Panel implements ActionListener {
    public Grille() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }



    Cellule[][] tableau;
    XYLayout xYLayout1 = new XYLayout();
    int hauteur;
    int largeur;
    public Grille(int maHauteur, int maLargeur) {
        hauteur = maHauteur;
        largeur = maLargeur;
        tableau = new Cellule[hauteur][largeur];



        for (int i = 0; i < hauteur; i++) {
            for (int j = 0; j < largeur; j++) {
                tableau[i][j] = new Cellule(i, j);
                //     add(tableau[i][j], new XYConstraints(11*i+1, 11*j+1, -1, -1));
                //     (tableau[i][j]).addActionListener(this);
            }
        }
    }



public void paint (Graphics g){
 super.paint(g);
 g.fillRect(1,11,111,211);
}





    public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
    }



    private void jbInit() throws Exception {
        this.setLayout(xYLayout1);
        for (int i = 0; i < hauteur; i++) {
            for (int j = 0; j < largeur; j++) {
                add(tableau[i][j],
                    new XYConstraints(11 * i + 1, 11 * j + 1, 10, 10));
            }
        }
    }



}









<hr>




Class nouveau composant


package jdv;




import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Color;
import java.awt.event.ActionListener;


public class Cellule extends Component implements MouseListener {
    private int coord_X;
    private int coord_Y;
    private boolean vie;
    private Color couleur;
    /**
     * The action to be performed once a button has been
     * pressed.  This value may be null.
     * @serial
     * @see getActionCommand()
     * @see setActionCommand()
     */
    String actionCommand;


    transient ActionListener actionListener;


 





//    private Color couleur_Actu;
    /*    public int get_X() {
            return coord_X;
        }



        public int get_Y() {
            return coord_Y;
        }
     */
    public Cellule(int X, int Y) {
//        this.dispatchEvent();
        coord_X = X;
        coord_Y = Y;
        vie = false;
        couleur = Color.WHITE;
        addMouseListener(this);
        repaint();
    }


    public boolean get_Etat() {
        return vie;
    }


    public void paint(Graphics g) {
        Color tmpColor = couleur;
        if (vie) {
            g.setColor(couleur);
        } else {
            g.setColor(Color.white);
        }
        g.fillRoundRect(0, 0, 10, 10, 2, 2);
    }




    private void change_Etat(){
        vie = !vie;
        repaint();


    }


    public void test_Etat(Grille grille) {
        int cmpt = 0;
        for (int i = -1; i < 2; i++) {
            for (int j = -1; j < 2; j++) {
                try {
                    if (grille.tableau[coord_X + i][coord_Y + j].get_Etat()) {
                        cmpt++;
                    }
                } catch (Exception e) {}
            }
        }


        if (vie) {
            if (cmpt != 3 && cmpt != 4) {
                change_Etat();
            } else
            if (cmpt == 3) {
                change_Etat();
            }
        }


    }





// Gestion de la souris

    public void mouseClicked(MouseEvent e) {
        change_Etat();
    }


    public void mouseEntered(MouseEvent e) {}


    public void mouseExited(MouseEvent e) {}


    public void mousePressed(MouseEvent e) {}


    public void mouseReleased(MouseEvent e) {}
}

2 réponses

scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
2 mai 2006 à 13:57
Salut
Deux minutes sur Google m'a donné ceci.

Voila
A++
0
lagaman Messages postés 8 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 6 avril 2008
2 mai 2006 à 14:44
Salut,

merci ca fais trois jours que je cherche un site dans le genre, je vais voir ce que je peux faire avec
0
Rejoignez-nous