Witam.

Zgłaszam się do Was z prośbą. Mianowicie staram się napisać program, z wykorzystaniem J3D, w którym na ekranie będą znajdowały się ruchome obiekty. Bazuję na kodzie przedstawionym na stronie : http://www.java3d.org/animationinteraction.html . Do momentu, w którym zwiększanie położenie jest puszczone w pętli, czyli jak w tym przypadku:

public void actionPerformed(ActionEvent e ) {
(...)

   height += .1 * sign;

(...)
trans.setTranslation(new Vector3f(xloc,height,0.0f));

(...)

}

wszystko działa bez problemowo. Jednak mnie interesuje sytuacja, w której obecne położenie obiektu (tylko np. pol X) będzie pobierane z zewnątrz. W projekcie mam dwa pliky java. W jednym z nich jest funkcja określająca położenie. W drugim są wszystkie funkcje związane z tworzeniem i wyświetlaniem obiektu. Łącznie z timerem, w którym wywolywana jest funkcja setTranslation, oraz setTransform. Przesyłanie zmiennej między java`mi odbywa się poprawnie, przynajmniej tak mi się wydaje. Natomiast połozenie obiektu, nie ulega zmianie. Za pewne popełniam jakiś duży błąd i proszę Was o pomoc mi w znalezieniu go.

Robię to w następujący sposób:

poczatek.java;
obiekt3D.java;

w poczatek.java mam cos takiego:
(...)
obiekt3D obiekt = new Obiekt3D();

funkcja okreslajaca polozenie i przesylajaca do obiekt3D(){
obiekt.polozenie_x = polozenie;
}

w obiekt3D.java mam:

public float polozenie_x;

TimerTask task = new TimerTask(){
public void run() {
Transfpolozenie.setTranslation(new Vector3f (-0.18f , polozenie_x ,0.0f ));
objTrans2.setTransform(Transfpolozenie);
}
};

Probowałem również rozwiązania:
w poczatek.java:

obiekt.zmianapolozenia(polozenie);

a w obiekt3D.java:

public zmianapolozenia(float pol_x){
polozenie_x = pol_x;
}

Niestety żadne z tych rozwiązań nie pomaga i polozenie_x = 0. Czy jest to w ogóle do zrobienia??
Dziękuję za wszystkie uwagi.
ziggyy