I should be able to achieve this with one method call, drawImage from java.awt.Graphics:
g.drawImage(stage.map, (ourChar.posX - stage.visibleWidth / 2), (ourChar.posY - stage.visibleHeight / 2), stage.width, stage.height, null);
stage.map is a BufferedImage.
ourChar.posX and posY is the current position of the main character(example Mario in Super Mario Bros).
stage.visibleWidth and Height is the size of the JFrame.
stage.width and height is the full size of the entire stage(stage.map).
So according to the coordinates, the main character should always be in the middle of the screen(if not overlapping at the edges, which will be fixed once I get this to work). But thats no the case at all.
For those not familiar with java, drawImage paints an image according to this: drawImage (img, x, y, w, h, null)
x and y is the start coordinate of the image, w and h is the size to paint.