Bonjour,
mon applet simule l'avancée d'une réaction chimique grace à un graphique
l'utilisateur peut demarrer avec le bouton play. et il peut faire pause en appuyant dessus (le bouton play se tranforme en bouton pause)
le problème c'est que à la pause la ligne du graphique n'est plus visible, alors que ça aurait été utile à la pause de pouvoir l'observer
j'ai bien fait des trucs genre : graphics g =getGraphics....
g.repaint(); quand on est à la pause mais rien n'y fait
Code :
Fonction qui affiche des points :
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 /** * Actions du bouton START/PAUSE */ private void action_b_start() { isMarche = true; if (isPause) { // L'utilisateur a appuyer sur le bouton START isPause = false; if(premiere){ simulation = new Simulation(app); app.getFenetreGraphe().getFenetreGrapheParam().getcb_tmax().setSelectedIndex(0);//forcage à Tmax =2H pour //chaque début de simu simulation.demarreSimulation(); premiere = false; } simulation.setEnMarche(true); enableBoutonStop(true); // Sur la fenêtre principale // Transformation du bouton START en bouton PAUSE setIsPause(false); // Sur la fenêtre principale } else { // L'utilisateur a appuyer sur le bouton PAUSE isPause = true; simulation.setEnMarche(false); b_start.setEnabled(true); app.getFenetreGraphe().setVisible(true); // Transformation du bouton PAUSE en bouton START this.app.getPanneauBoutons().setIsPause(true); // Sur la fenêtre principale Graphics g= app.getFenetreGraphe().getGraphePh().getGraphics(); app.getFenetreGraphe().getGraphePh().paint(g); } }
Code :
PS : si je passe une fenetre dessus il devient visible
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 /** * Affichage des nouveaux points dans le graphe : * on affiche les points pour les pompes * Appellée par PanneauCuveGeneral.majGraphePompe */ public void afficherPoint() { Graphics g = this.getGraphics(); boolean afficher = false; // Si le point est à afficher (cela dépend de l'échelle) if(abcisseEnCours == 1) { abcisseEnCours++; indiceTab++; } else if (abcisseEnCours < ABCISSE_MAX) { // On calcule si le point est à afficher (selon l'échelle) if ( indiceTab%(1/(2.0/this.T_MAX)) == 0) { afficher = true; } else { afficher = false; } if(afficher){ // Pour chacune des pompes on réalise l'affichage for(int i = 11 ; i>=0; i--) { boolean cuve_select = false; // on regarde si on doit afficher la courbe correspondant à la cuve x if(i>1 && i<7){ if(cuves[i] != null) cuve_select = cuves[i].isSelected(); } else if(i>6 && i<12) { if(cuves[i-5] != null) cuve_select = cuves[i-5].isSelected(); } else if(i==0 && app.getModele()!=PanneauCuves.MODELE_1_CUVE_DECHRO){ cuve_select = true; } else if(i==1 && app.getModele()!=PanneauCuves.MODELE_1_CUVE_DECYAN){ cuve_select = true; } if (cuve_select) { // On affiche les points que si nécessaire if (i == 0) { g.setColor(Color.blue); } else if (i == 1) { g.setColor(Color.red); } else if (i-5>1) g.setColor(new Color(223,37,186)); else g.setColor(new Color(37,220,223)); double pas = 1/(2.0/this.T_MAX); g.drawLine(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i],abcisseEnCours+x, tab_coor[indiceTab][i]); (jai coupé certains trucs qui n'avait pas d'interet) } } abcisseEnCours++; } indiceTab++; }
Merci de votre aide !
Partager