For an AWT frame all you need to do is override the paint( Graphics ) method of the frame to draw your image. You can either hardcode the image somewhere (like the constructor of the frame subclass) or have a pair of setImage()/getImage() methods.
However, Swing presents a better solution... since AWT uses native components, child components in the Frame will cover up the background image. Swing allows most child components to call setOpaque( false ) and allow their parent's background to show through. I have covered the way to do this in Swing here.
Write once, run anywhere, because there's nowhere to hide! - /. A.C.