>>62
java.awt.Component#isDisplayable() が true を返している場合は
setUndecorated()は IllegalComponentStateException を投げるとAPI仕様で決まってる。

表示不能にしてからフレームの装飾を外すしかないと思われ。
具体的にはいったん dispose() して setUndecorated(false) その後 setVisible() で再表示。