Bonjour à tous, j'ai codé rapidement un petit support pour le jeu de la vie pour ceux qui connaissent...
Bref, j'ai simplement un problème avec la fonction paintComponent de mon JPanel qui refuse d'être appellée. Pas d'erreurs, mais la fonction est tout simplement invisible... j'ai du faire une erreur bête quelquepart mais je ne trouve pas où
Je m'en remet donc à vous, le code n'est pas bien long


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
package com.company;
 
import javax.swing.*;
import java.awt.*;
 
public class Main {
    public static void main(String[] args) {
        JFrame fenetre = new JFrame();
	    Panneau pan = new Panneau();
        fenetre.setVisible(true);fenetre.setSize(1000,1000);fenetre.setLocationRelativeTo(null);fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenetre.setContentPane(pan);
        tableau tab = new tableau();
        tab.createCell(50,51);tab.createCell(50,50);tab.createCell(50,49);
        pan.T=tab.tableau;
        pan.repaint();
        for(int i=0;i!=10000;i++) {
            System.out.println(i);
            tab.step();
            pan.T=tab.tableau;
            pan.repaint();
        }
    }
}
class tableau{
    boolean[][] tableau = new boolean[100][100];
    tableau(){
        for (int i = 0;i!=100;i++){
            for(int j=0;j!=100;j++){
                tableau [i][j] = false;
            }
        }
    }
    void createCell(int i,int j){
        tableau[i][j]=true;
    }
    private void deleteCell(int i, int j){
        tableau[i][j]=false;
    }
    void step(){
        for (int i=0;i!=100;i++) {
            for(int j = 0;j!=100;j++){
                if(check(i,j))createCell(i,j);
                else deleteCell(i,j);
 
            }
        }
    }
    private boolean check(int i, int j){
        if(i==0)i=1;if(i==99)i=98;if(j==0)j=1;if(j==99)j=98;
        if(tableau[i][j]){
            int a=0;
            if(tableau[i+1][j])a++;
            if(tableau[i+1][j+1])a++;
            if(tableau[i][j+1])a++;
            if(tableau[i-1][j+1])a++;
            if(tableau[i-1][j])a++;
            if(tableau[i-1][j-1])a++;
            if(tableau[i][j-1])a++;
            if(tableau[i+1][j-1])a++;
            return a == 3||a==2;
        }else{
            int a=0;
            if(tableau[i+1][j])a++;
            if(tableau[i+1][j+1])a++;
            if(tableau[i][j+1])a++;
            if(tableau[i-1][j+1])a++;
            if(tableau[i-1][j])a++;
            if(tableau[i-1][j-1])a++;
            if(tableau[i][j-1])a++;
            if(tableau[i+1][j-1])a++;
            return a == 3;
        }
    }
}
class Panneau extends JPanel{
    boolean[][] T;
    public void paintComponents(Graphics g) {
        System.out.print("/");
        g.setColor(Color.WHITE);g.fillRect(0,0,1000,1000);
        g.setColor(Color.BLACK);
        for (int i=0;i!=100;i++) {
            for(int j = 0;j!=100;j++){
                if(T[i][j])g.fillRect(i*10,j*10,10,10);
            }
        }
    }
}