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)
、再び機能しますが、タイトルバーがないため、それは私が望むものではありません。この問題を解決する方法はありますか?