I'm used to using AWT's Canvas and BufferedImage and things like that. I've switched from using Canvas for drawing, to using a JPanel and I'm blown away by the efficiency. I intend on fully using Swing for all of my GUI.

My question is, what is Swing's equivalent of BufferedImage?

Swing is built on top of AWT, not all AWT classes are overridden.

In fact it's impossible to use Swing without using AWT as Swing relies on a lot of AWT classes under the hood. For example a Swing javax.swing.JComponent IS a java.awt.Component

BufferedImage was OK as it was, so there was no need to replace it. It's still the one to use.