Hallo,
ich benutze das JDK7 und wollte einen transparenten JFrame erstellen. Soweit eigentlich kein Problem aber ich kann den JFrame nur transparent erstellen wenn ich setUndecorated(true); aufrufe. Wieso?? Kann man denn nicht einen gesamten JFrame mit Window-Decoration transparent machen?
Ich bekomme dann folgende Fehlermeldung:
Hier ein Beispiel Code:
ich benutze das JDK7 und wollte einen transparenten JFrame erstellen. Soweit eigentlich kein Problem aber ich kann den JFrame nur transparent erstellen wenn ich setUndecorated(true); aufrufe. Wieso?? Kann man denn nicht einen gesamten JFrame mit Window-Decoration transparent machen?
Ich bekomme dann folgende Fehlermeldung:
Java:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
Hier ein Beispiel Code:
Java:
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class TranslucentWindow extends JFrame {
private static final long serialVersionUID = 318336320399884077L;
public TranslucentWindow() {
super("Simple Translucency Demo");
setSize(300, 200);
// setUndecorated(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getRootPane().setDoubleBuffered(false);
setOpacity(0.8f);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
if (ge.getDefaultScreenDevice().isWindowTranslucencySupported(
GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {
new TranslucentWindow();
}
}
});
}
}