Code estimates are like car EPA mileage guidelines. if your Java Applet consumes 100MB of RAM and spins the disk incredibly as it writes tens of MB of data, then you will have far fewer than if your applet only consumes 100K of resources, has no disk access and only a little bit of CPU usage.
Put a bunch on a box and see. You will probably need to rebalance your load at some point. This, incidentally, is a great use for a 'control set' of virtual users: Single copies of each virtual user type on a load generator hardware and software matched to the rest of your generators. If your global set of users gets slower, but your control set does not, then you have a resource issue on your load generator(s). If both your control and global sets degrade at the same rate, then your application is most likely at fault for the slowness.