Хотя с прозрачностью UNDECORATED JFrame нет проблем (myJFrame.setBackground (new Color (0,0,0,0)); вполне достаточно), то же самое с JDialog не работает.
Я обнаружил, однако, следующая последовательность прекрасно работает для JDialog:
myJDialog.getRootPane ().setOpaque (false);
myJDialog.getContentPane ().setBackground (new Color (0, 0, 0, 0));
myJDialog.setBackground (new Color (0, 0, 0, 0));
A также остается, но это мое ЧАСТНОЕ, скромное предположение, что все вызовы setBackground для расширителей окон (например, JFrame, JDialog) следует пытаться использовать против UnsupportedOperationException и IllegalComponentStateException.