Java3D TransformChanged nullpointer ???

mattn

Aktives Mitglied
hi
wenn ich mit dem PickTranslateBehavior ein Objekt Verschieben will aber statt das Objekt versehendlich nicht jenes, sondern den "Raum" treffe wirft mit dieses Event eine NullPointerException...
habe es versucht mit if(tg != null) abzufangen aber naja geht leider nicht die Exception wird trotzdem geworfen 🙁
Java:
/PickTranslateBehavior
		PickingCallback myCallback = new MyCallbackClass();
		PickTranslateBehavior pickT = new PickTranslateBehavior(rootBG, c, BigBounds);
	    PickZoomBehavior pickZ = new PickZoomBehavior(rootBG, c, BigBounds);
		pickT.setupCallback(myCallback);
		pickZ.setupCallback(myCallback);

Java:
public class MyCallbackClass extends Object implements PickingCallback{
        public void transformChanged(int type, TransformGroup tg) {  
        	//System.out.println(tg.getParent().getBounds());
        	//System.out.println("vergleich " + tg.getParent());
        	
        	if (tg.getParent().getName() != null && tg!=null){
            	String compBox = new String(tg.getParent().getName());
            	System.out.println("compBox " + compBox);
            	line.updateCheck(compBox);
        	}

und die Fehlermeldung gleich hinterher
Code:
Exception occurred during Behavior execution:
java.lang.NullPointerException
	at test.index$MyCallbackClass.transformChanged(index.java:206)
	at com.eigeneImports.PickTranslateBehavior.updateScene(PickTranslateBehavior.java:85)
	at com.sun.j3d.utils.behaviors.picking.PickMouseBehavior.processStimulus(PickMouseBehavior.java:143)
	at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:173)
	at javax.media.j3d.J3dThread.run(J3dThread.java:256)
 
Weil schon tg null ist und du das erst als 2. evaluierst

Java:
public class MyCallbackClass extends Object implements PickingCallback{
        public void transformChanged(int type, TransformGroup tg) {  
            //System.out.println(tg.getParent().getBounds());
            //System.out.println("vergleich " + tg.getParent());
            
            if ( tg!=null && tg.getParent().getName() != null){
                String compBox = new String(tg.getParent().getName());
                System.out.println("compBox " + compBox);
                line.updateCheck(compBox);
            }

Wenn tg != null dann wird versucht den Parent zu nehmen.

Zuerst schauen, ob das Glas leer ist, bevor man versucht was rauszunehmen.
 
du meinst das sicher so ...
Java:
if(tg!=null){
        		if (tg.getParent().getName() != null){
                	String compBox = new String(tg.getParent().getName());
                	System.out.println("compBox " + compBox);
                	line.updateCheck(compBox);
            	}
        	}

so hat ich es am anfang.... nur leider bringt das auch nix...

ahh mist bin ich doof 🙁

ich hatte weiter unten noch eine codepassage, die auf tg.getParent() zugreift...
habe ich total übersehen...(auch beim debuggen falschen breakpoint gesetzt)
manchmal könnte ich mich......... :bloed:

trotzdem danke für dein post 🙂
 

Neue Themen


Zurück
Oben