bonjour, je suis entrain d'apprendre les boucles avec swing et pour générer et afficher à l'infini un nombre aléatoire en console ça fonctionne mais pas sur le panel hélas... il faut 2 thread? je vois pas, en tout cas avec le do { et while(true) de la méthode dp3m : le panel ne s'affiche plus.. merci d'avance si vous savez comment arranger ça pour que les 2 s'affichent et défilent en même temps :-)

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
 
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.io.IOException;
import java.util.Random;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
 
	public class Testframe3 extends JFrame implements Runnable  {
 
	int drawingTiles = 0;
 
	int tiles[][] = new int[8][8];
    int i,j;  
    int a, b;
 
 
 
    public static void main(String args[] ) throws IOException {
 
    Runnable r0 = new Testframe3();	
    for (int t=0; t<10;  t++ )   {
    Thread t0 = new Thread(r0);	
    t0.start();
 
 
    }
 
    }
    private void init() {
        DrawPanel3 p = new DrawPanel3();
        p.setBackground(Color.black);p.setForeground(Color.red);
        add(p);
    }
 
 
    public Testframe3() {
    	  init();  
    	  setDefaultCloseOperation(3);
          pack();
          setLocationRelativeTo(null);
          setVisible(true);
 
    }
	@Override
	public void run() {
 
	}           
 
}
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
class DrawPanel3 extends JPanel implements Runnable{   // ajouté
  //  		int tiles[][] = new int[8][8];
    	    int i,j;  
    	    int a, b;
        protected int drawingTiles = 0;
 
        private int tiles[][] = new int[8][8];
 
		public int[][] getTiles() {
			return tiles;
		}
 
		public void setTiles(int[][] tiles) {
			this.tiles = tiles;
		}
		public DrawPanel3() {
     //       Runnable r1 = new DrawPanel3();	
        	dp3m();
        }
        public void dp3m() {
            	this.setBackground(Color.black);this.setForeground(Color.red);	
           	  do {
                      JPanel p1 =new JPanel();
                      for (a=0;a<tiles.length;a++  ) {
                      	for (b=0;b<tiles.length;b++  ) {
                      		tiles[ a ][ b ] = 0;  
 
                      Random r = new Random();
                      for( i=0; i<tiles.length; i++){
                          for( j=0; j<tiles.length; j++){
//                            	if (j>=5 && i>=5) {
//                          		i=0;j=0;
                         	 tiles[i][j]=0;                	
                         	tiles[ i ]  [ j ] = r.nextInt(150);
 
                      System.out.printf("%s\n" , tiles [i][j]  ) ;
                         }   } 	}  	}  }    
              	while ( true);    	}	
 
 
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
//            while(getTiles() != null  ) {
            int curTiles = 0;
            int a,b;
 
   //              do {
 
//            	for (a=0;a<tiles.length;a++  ) {
//                	for (b=0;b<tiles.length;b++  ) {
//                		tiles[ a ][ b ] = 0;  
            	for(int i=0;i<tiles.length;i++){
                for(int j=0;j<tiles.length;j++){
 
                        g.drawString(getTiles()[i][j]+"", (j+1)*40, (i+1)*40);
 
 
//                    }
//                }
            }
        } }
//        while(true); }
            @Override
        public Dimension getPreferredSize() {
            return new Dimension(512,512);
        }
			@Override
			public void run() {
 
			}
    }