См. Пример Стеклянная панель для полного примера и объяснения.
В общем случае ваша стеклянная панель может использовать прозрачный фон:
JComponent glassPane = new JPanel();
glassPane.setBackground( new Color(240, 20, 20, 100) );
frame.setGlassPane( glassPane );
Тогда, когда вы захотите показать диалоговое окно, базовый код будет:
glassPane.setVisible( true );
JDialog dialog = new JDialog(...);
// add components to dialog
dialog.setVisible( true );
glassPane.setVisible( false );