BULLES D'AQUARIUM QUI SE DÉPLACENT (AVEC POISSON)

cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
- 12 juin 2010 à 11:49
 attar - 21 sept. 2014 à 14:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51896-bulles-d-aquarium-qui-se-deplacent-avec-poisson

je suis débutant en java , mais je trouve que c'est un excellent travail !
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
12 juin 2010 à 16:29
Merci pour tes remarques, j'ai corrigé le bug, je supprimais des éléments de la liste dans une boucle qui s'arrêtait à liste.size(), il y avait donc une erreur.

J'ai ajouté une sélection de la vitesse et des poissons qui défilent.

Merci
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
131
12 juin 2010 à 11:49
C'est joli, fluide, mais un peu trop rapide à mon goût sur ma machine (on a quasiment pas le temps de voir les bulles), tu devrais rajouter un petit paramétrage du temps d'attente entre 2 affichages pour régler la vitesse de défilement des bulles.

Sinon, j'ai une exception qui se déclenche, je te laisse la stacktrace complète afin que tu puisse debugguer (sûrement un problème de synchronisation entre le remove et le paint dans ton thread) :

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 31
at java.awt.Container.getComponent(Unknown Source)
at javax.swing.JComponent.rectangleIsObscured(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

C'est une jolie utilisation de ma source de tracé de bouton avec effet glass ;)