我正在使用 JDK7 的半透明窗口支持,发现它不适用于 Windows 的外观和感觉。
这是我的代码:
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Translucent Window");
frame.setOpacity(0.5F);
frame.setSize(640, 360);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
此代码正确显示半透明窗口。但是,如果我设置 Windows 外观:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
抛出异常:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
如果我用 禁用框架装饰frame.setUndecorated(true)
,它会再次工作,但这不是我想要的,因为缺少标题栏。有没有办法解决这个问题?