fonction paintcomponent invisible
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:
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);
}
}
}
} |