It's hard to know where to begin - it's a mess. You're setting the frame visible before you add any components to it, you don't call pack() on it to lay out the components, you're adding the overlay...