You're on the right track.

You could use a glass pane without blocking input. This is a really useful article: A well-behaved GlassPane | Java.net

After you follow that tutorial, you can either...