Bonsoir,
Je ne sais pas si mon message est au bon endroit, si ce n'est pas le cas toutes mes excuses.
Je suis (encore et toujours) en train de développer pour un projet tutauré une petite application java : un aquarium.
Les explications qu'on nous a fournies ne sont pas claires et j'ai vraiment besoin qu'on m'éclaire sur un point.
Une classe Start lance une Animation qui crée un Aquarium dans lequel se baladent des petits poissons, algues et autres objets. Pour faire bouger tout ce petit monde nous avons eu comme piste ou consigne de créer une classe Time, héritant de Thread. Elle comporte un attribut Aquarium. Le constructeur de Time doit avoir un paramètre Aquarium.
Il reste à ajouter un attribut Time et à le démarrer (méthode start()) à la construction de l'aquarium).
Je n'ai déjà pas très bien compris le principe du timer et du thread, alors je ne sais pas quoi mettre dans le constructeur de Time et encore moins comment arranger tout ça.
J'ai fait des tests, mais eclipse n'est pas d'accord avec ce que j'ai fait. Si une âme charitable voulait bien au moins m'orienter vers le bon chemin je lui en serait très reconnaissante!
Voici ma classe Time :Et une partie de la classe Aquarium:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Time extends Thread { public Aquarium aquarium = new Aquarium(); public Time(Aquarium aqua){ aquarium = aqua; } public void run(){ while(true) aquarium.go(); } }
Et voilà ce que donne l'éxécution: (je ne comprend RIEN)
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 public class Aquarium extends JPanel{ private static final long serialVersionUID = 1L; public static final int NB_STONE = 5; public static final int NB_SEAWEED = 7; public static final int NB_FISH = 10; private Time t = new Time(this); protected Vector<AquariumItem> items = new Vector<AquariumItem>(); public Aquarium(){ this.setBackground(Color.cyan); this.fill(); t.start(); }
Exception in thread "main" java.lang.StackOverflowError
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
at javax.swing.UIDefaults.getUI(Unknown Source)
at javax.swing.UIManager.getUI(Unknown Source)
at javax.swing.JPanel.updateUI(Unknown Source)
at javax.swing.JPanel.<init>(Unknown Source)
...
at Aquarium.<init>(Aquarium.java:33)
at Time.<init>(Time.java:4)
at Aquarium.<init>(Aquarium.java:28)
at Time.<init>(Time.java:4)
etc...
Partager