There is a subtle difference between these components.
JFrame is a fully-functional Windows window, where as JDialog is a popup-sort-of window.
That sounds pretty weak. Essentially, you should use a JFrame for the part of your program that is always visible (unless it's minimized),
while JDialog's pop up when you need them, and disapear when you don't.