Okay, I've just read what I've written and I think I'll clarify it a bit better.

Given two matrices A and B, A multiplied by B is not necessarily equal to B multiplied by A (AB != BA).

You can apply all your transformations at the same time, but they must be gathered together in the specified order, so you want to create a matrix B as follows:

B = A

_{pitch}A

_{heading}A

_{bank}You can then apply matrix B to your object. This will give the same effect as applying the transformations one after the other.

I don't know enough about the Java3D API but I'd guess from looking at your code that you shouldn't be applying the transform after setting each rotation - set all the rotations one by one and apply the lot at the end.