It has been a while...
Anyway, I see you are having problems with scrolling. I wrote a small mario game that has basic scrolling, collision detection, and so on. However, it is in a very rough coding style. However, if you cut and paste it in your IDE, it should work...http://pastebin.java-gaming.org/43823368d83
For scrolling, the best and simplest method is to separate the camera from the player movements. If you look in my code, you will see that a have a variable called "scrollx". This is solely used to control the camera. The player movements and the world are stationary and the camera is just an "offset".
g.fillRect(px[i]+scrollx, py[i], psx[i], psy[i]);
I hope that you can pick through the mess and see the code for how it is, but the basic idea is that I graphically pin everything to the camera and just move the camera. All camera movements are calculated separately from everything else in order to give the camera freedom of movement around the world.
I hope it helps, but the code is rather a mess. I'll see if I can write a better example, but I'll only do so upon request...