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() { } }







Répondre avec citation
Partager