Bonjour
Je tiens d'abord à dire que j'ai cherché et que peut être la réponse à mon problème est simple mais après plusieurs recherches je n'ai pas trouvé la réponse à mon problème ^^'
Voilà j'exécute une fonction et mais lorsque j'exécute à nouveau cette fonction il subsiste des problèmes car si je réutilise ma fonction alors que l'utilisation précédente n'est pas terminée (la boucle n'est pas terminée en somme), elle m'affiche la valeur de endSong de la 1ère utilisation et la valeur de endSong de la deuxième utilisation --'
Voilà le code (PS: j'ai enlevé les importations pour le raccourcir):
Testez le code si je n'est pas été clair ^^' (Mettez par exemple 140 puis appuyez une nouvelle fois sur le bouton "NEW" et mettez 870)
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 public class Test { private static JFrame mainWindow; private static JButton button = new JButton("NEW"); private static Thread a; private static JLabel c = new JLabel(); private static JLabel d = new JLabel(); private static JPanel z = new JPanel(); private static int dureetotale; private static int curentposition; public static void main(String[] args) { mainWindow = new JFrame(); mainWindow.setTitle("Test"); mainWindow.setMinimumSize(new Dimension(800,600)); mainWindow.setResizable(false); mainWindow.setLocationRelativeTo(null); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainWindow.setExtendedState(JFrame.MAXIMIZED_BOTH); mainWindow.setLayout(new BorderLayout()); z.setSize(new Dimension(800,600)); z.add(c, BorderLayout.WEST); z.add(d, BorderLayout.EAST); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { start(); } }); z.add(button, BorderLayout.NORTH); mainWindow.setContentPane(z); mainWindow.setVisible(true); } public static void start() { dureetotale = Integer.parseInt(JOptionPane.showInputDialog(mainWindow, null, "Durée en secondes", JOptionPane.PLAIN_MESSAGE)); a = new Thread() { private int bmin; private int bsec; private String bsecf = null; private int emin; private int esec; private String esecf = null; private String beginSong = null; private String endSong = null; public void run() { while(!(esec == 0 && emin == 0)) { bmin = curentposition/60; bsec = curentposition - 60*bmin; if(bsec < 10) bsecf = "0" + bsec; else bsecf = new String("" + bsec + ""); beginSong = new String(bmin + ":" + bsecf); emin = dureetotale/60 - bmin; esec = dureetotale - 60*emin - curentposition + 60; if(esec < 60) emin = emin - 1; else esec = esec -60; if(esec < 10) esecf = "0" + esec; else esecf = new String("" + esec + ""); endSong = new String(emin + ":" + esecf); c.setText(beginSong); d.setText(endSong); curentposition += 1; try { Thread.sleep(1000); } catch( Exception ee ) { ee.printStackTrace(); } } } }; a.start(); } }
Merci d'avance de l'aide que les membres du forum m'apporteront
Cordialement, Xavi91
Partager