2

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

4

2 に答える 2

1

JFrameこのチュートリアルを参照して、透明または半透明にする方法を理解してください

http://blogofjavacrazy.blogspot.in/2007/03/transparent-window-in-java.html

実際に透明にする代わりに、スクリーンショットを撮り、その小さなセグメントを背景として追加する、すてきな小さなハックに出くわしました。

このリンクを参照してください:

http://onjava.com/pub/a/onjava/excerpt/swinghks_hack41/index.html

于 2012-09-19T09:26:31.030 に答える
0

これは本当にばかげています。Java 6 withAWTUtilitiesでは、これは問題なく機能します。

あなたはこれを読みたくなるでしょう。

Java チュートリアルの半透明ウィンドウの例は、jdk7 で遊んでいる人に問題を引き起こしていますか?

于 2012-09-19T20:18:51.417 に答える