You need to make sure you start the JVM which runs this program with enough heap space. The command line option -Xmx sets the max amount of heap available to the jvm. For example:
java -Xmx 2048m
There are different ways of settings this parameter, dependent upon how you start the program. The above way works if you're starting it directly from the commandline but if you are using an IDE such as Eclipse you might want to look into the 'run' or 'launch' configuration.
However, there is a limit upon the amount of heap space you can make available to the jvm, defined by your machine's system properties (hardware constraints).
See also How to deal with "java.lang.OutOfMemoryError: Java heap space" error (64MB heap size) for an in-depth discussion.
EDIT:
BufferedImage seems to load the bitmap in memory which can make your application really memory intensive real quick. This is great if you want to manipulate the image before rendering but might be a bit overkill if you just want to display the image.
I have very limited experience working with images in Java and I don't know of any class that allows for lower memory consumption when handling images but Make a BufferedImage use less RAM? proposes a solution where the image is downsized upon reading so your BufferedImages use less memory. I don't know if it works but it might point you in the right direction.
P.S. Google is your friend in most if not all questions ;-)