In general, I have seen applets running on Mac OSX JVM run much slower than on windows or linux. That is strange in your case that the windows performance is also bad, usually I haven't seen that.
In any case, your main loops look fairly straightforward. It seems that you are making a game, in which case it is likely that a major portion of your screen will have to be redrawn each frame. If this is the case, you will in fact have to redraw the entire buffer. In some applications, you might be able to get more performance by only redrawing the "dirty rectangles", but if you have a lot of full-screen motion, the logic required to track dirty rectangles will take longer than any draw time you might be saving.
Have you profiled this code to see exactly which parts are taking up your cycles? This would be my next recommendation.