Bonjour, dans une application je dois ajouter et supprimer des shape3D dynamiquement, selon des actions de l'utilisateur.

J'ai donc une méthode "show" qui doit afficher mon shape3D quand elle est appelée suite à une action de l'utilisateur.

Voici son code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
GraphicTile tile = new GraphicTile(name); // GraphicTile est une classe qui hérite de Shape3D
Transform3D translate = new Transform3D();
translate.set(Squares.getSquare(place));
TransformGroup tg = new TransformGroup(translate);
tg.addChild(tile);
BranchGroup bg = new BranchGroup();
bg.addChild(tg);
bg.setCapability(BranchGroup.ALLOW_DETACH);
sceneBG.addChild(bg); // sceneBG est le branchgroup principal
Ca fonctionne bien mais ça m'ennuie de devoir créer un branchgroup pour chaque Shape3D.
Je trouve ça lourd et bizarre au niveau conception mais si j'essaie de faire directement sceneBG.addChild(tg), ou même sceneBG.addChild(tile),
j'ai ce message d'erreur:
Exception in thread "main" javax.media.j3d.RestrictedAccessException: Group: only a BranchGroup node may be added

Est-ce qu'il y a une autre méthode qui m'éviterait de créer un branchgroup par shape3D?

Merci.