lagaman
Messages postés8Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention 6 avril 2008
-
2 mai 2006 à 13:16
lagaman
Messages postés8Date d'inscriptionjeudi 6 novembre 2003StatutMembreDerniè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.
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));
}
}
}
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();
}