簡體   English   中英

具有Windows外觀的半透明窗口?

[英]Translucent window with Windows look and feel?

我正在使用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)禁用框架裝飾,則它可以再次工作,但這不是我想要的,因為標題欄丟失了。 有什么辦法解決這個問題?

請參閱本教程以了解如何使JFrame透明或半透明

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

我偶然發現了一個簡潔的小技巧,它實際上不是透明的,而是需要一個屏幕截圖,並將該小片段添加為背景。

看到此鏈接:

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

這真是愚蠢。 在具有AWTUtilities Java 6 AWTUtilities ,這很好用。

不過,您將要閱讀此內容。

Java教程“半透明窗口”示例是否給使用jdk7的用戶帶來麻煩?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM