Bonjour à tous,
Débutant en Java, j'ai un problème récurrent de débordement de pile.
Pour faire de l'animation vectorielle (Swing+JPanel), j'utilise une méthode de ce type :
Cela fonctionne très bien pendant plusieurs minutes mais finit systématiquement par envoyer une erreur de type "java.lang.StackOverflowError".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private void refresh() { panel.repaint(); try { Thread.sleep(40); refresh(); } catch(InterruptedException ex) { ex.printStackTrace(); } }
Ca semble une erreur légitime pour une récursion "infinie", mais étant donné que je demande au programme d'attendre 40ms avant de relancer la fonction je ne comprends pas quel est le problème.
Pourriez-vous m'éclairer sur ce point svp ?
Existe-t-il une meilleure méthode pour rafraîchir l'affichage à une fréquence donnée ?
Merci d'avance !
Partager