[java3D] problème de remove dans un BranchGroup
Bonjour,
Je suis en train de créer une application qui permet d'afficher des informations saisies par l'utilisateur sous forme 3D.
A chaque fois que l'utilisateur ajoute une nouvelle information, je veux effacer le contenu de ma fenetre 3D et le remplacer par un nouveau contenu. Or mon code ne marche pas :
le voici :
Code:
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
|
public class Fenetre3D extends javax.swing.JPanel {
private SimpleUniverse simpleU;
private BranchGroup bg = new BranchGroup();
public Fenetre3D() {
Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
canvas.setSize(this.fen3DsizeX,this.fen3DsizeY);
SimpleUniverse simpleU = new SimpleUniverse(canvas);
simpleU.getViewingPlatform().setNominalViewingTransform();
this.add("Center",canvas);
bg.setCapability(bg.ALLOW_CHILDREN_EXTEND);
bg.setCapability(bg.ALLOW_CHILDREN_WRITE);
bg.setCapability(bg.ALLOW_CHILDREN_READ);
bg.compile();
simpleU.addBranchGraph(bg);
}
public void actualise(BranchGroup scene) {
try {
if(bg.numChildren() != 0) bg.removeAllChildren();
scene.compile();
bg.addChild(scene);
bg.compile();
} catch(CapabilityNotSetException e) {
System.out.println("probleme de Capacite");
} catch(RestrictedAccessException e) {
System.out.println("probleme d'Acces");
} catch(Exception e) {
System.out.println("probleme autre");
} |
la fonction actualise(BranchGroup scene) m'ajoute lors de la première utilisation le BranchGroup scene qui est en paramètre en enfant sur le BranchGroup bg. Ceci marche bien.
Par contre lors des utilisations suivantes, elle doit supprimer tous les Child du BranchGroup bg avant d'ajouter le BranchGroup scene en child, or elle va automatiquement dans l'erreur CapabilityNotSetException.
Si quelqu'un pouvait me débloquer, ce serait sympa.
PS : j'ai essayer sans utiliser la fonction compile(), ça ne marche pas non plus, et en essayant la fonction removeChild(0).