1) setUndecorated deve essere invocato prima che il frame diventi "displayable" cioè prima di aver fatto un pack() o un setVisible(true) sul frame.
2) setUndecorated(true) toglie le decorazioni.