Big difference. A JFrame is an independent, top level window -- it appears on the computer's desktop and is managed by the host windowing system.
A JInternalFrame, on the other hand, is a lightweight component, which means that it is always drawn onto some other
Java component, and cannot appear on the desktop on its own. JInternalFrames are usually used inside a JDesktopPane, where they can be used to create something like an "MDI" interface inside a JFrame.