`
alanland
  • 浏览: 634856 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdk7透明异形窗体

    博客分类:
  • Java
阅读更多

在jdk6中设置透明异形窗体的方法与jdk7方法的比较

Method in Java SE 6 Update 10 JDK 7 Equivalent
AWTUtilities.isTranslucencySupported(Translucency) GraphicsDevice.isWindowTranslucencySupported(WindowTranslucency)
AWTUtilities.isTranslucencyCapable(GraphicsConfiguration) GraphicsConfiguration.isTranslucencyCapable()
AWTUtilities.setWindowOpacity(Window, float) Window.setOpacity(float)
AWTUtilities.setWindowShape(Window, Shape) Window.setShape(Shape)
AWTUtilities.setWindowOpaque(boolean) Window.setBackground(Color) Passing new Color(0,0,0,alpha) to this method, wherealpha is less than 255, installs per-pixel translucency.

jdk7判断操作系统是否支持透明窗体的设置

  1. // Determine what the default GraphicsDevice can support.  
  2.         GraphicsEnvironment ge = GraphicsEnvironment  
  3.                 .getLocalGraphicsEnvironment();  
  4.         GraphicsDevice gd = ge.getDefaultScreenDevice();  
  5.   
  6.         boolean isUniformTranslucencySupported = gd  
  7.                 .isWindowTranslucencySupported(TRANSLUCENT);//是否支持全部统一透明度的窗体  
  8.           
  9.         boolean isPerPixelTranslucencySupported = gd  
  10.                 .isWindowTranslucencySupported(PERPIXEL_TRANSLUCENT);//是否每部分不同透明度的窗体  
  11.           
  12.         boolean isShapedWindowSupported = gd  
  13.                 .isWindowTranslucencySupported(PERPIXEL_TRANSPARENT);//是否支持异性窗体  
  14.           
  15.         System.out.println("isUniformTranslucencySupported:"+isUniformTranslucencySupported);  
  16.         System.out.println("isPerPixelTranslucencySupported:"+isPerPixelTranslucencySupported);  
  17.         System.out.println("isShapedWindowSupported:"+isShapedWindowSupported);  

 

1.统一透明度窗体的设置

  1. GraphicsEnvironment ge = GraphicsEnvironment  
  2.                 .getLocalGraphicsEnvironment();  
  3.         GraphicsDevice gd = ge.getDefaultScreenDevice();  
  4.   
  5.         boolean isUniformTranslucencySupported = gd  
  6.                 .isWindowTranslucencySupported(TRANSLUCENT);//是否支持全部统一透明度的窗体  
  7.         if(isUniformTranslucencySupported)  
  8.         {  
  9.             JFrame.setDefaultLookAndFeelDecorated(true);  
  10.             JFrame jf=new JFrame("统一透明度");  
  11.             jf.setLayout(new GridBagLayout());  
  12.             Button bu=new Button("这是个按钮");  
  13.             jf.add(bu);  
  14.             jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  15.             jf.setBounds(100, 60, 200, 300);  
  16.             jf.setOpacity(0.8f);  
  17.             jf.setVisible(true);  
  18.         }  

 

刚开始一直弄官方例子http://download.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html,发现一直报错

  1. Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated  
  2.     at java.awt.Frame.setOpacity(Unknown Source)  


原来setOpacity方法说明

  1. The TRANSLUCENT translucency must be supported by the underlying system  
  2. The window must be undecorated (see setUndecorated(boolean) and Dialog.setUndecorated(boolean))  
  3. The window must not be in full-screen mode (see GraphicsDevice.setFullScreenWindow(Window))  


1.操作系统必须支持设置透明方法
2.窗体必须未修饰(无标题栏)
3.窗体必须非全屏模式

加上一句

  1. JFrame.setDefaultLookAndFeelDecorated(true); 
分享到:
评论

相关推荐

    JDK7_0中实现半透明窗体

    AWT是Abstrac tWindowing Toolkit的缩写,包含...JDK7.0即将发布,这个版本中AWT正式支持半透明窗体。文章介绍了不同层面上的半透明效果,给出使用方法和条件,并从源代码的角度分析实现机制,为开发、测试和维护提供依据。

    JDK7安装包.zip

    JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7...

    jdk7下载下载

    jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载jdk7j下载

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 百度网盘下载

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 资源共享

    jdk7chm,java7帮助,jdk7api,jdk1.7帮且文档

    jdk7chm,java7帮助,jdk7api,jdk1.7帮且文档,jdk7api chm,JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了...

    jdk-7u80-windows-x64安装包

    jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-...

    jdk7 jdk-7u80-linux-x64 网盘下载

    jdk7 jdk-7u80-linux-x64 网盘下载

    JDK7新特性(完整篇)

    1.1 JDK7新特性<一>概述 . . . . . . . . . . . . . . 1.2 JDK7新特性<二> 语法 . . . . . . . . . . . . . 1.3 JDK7新特性<三> JDBC4.1 . . . . . . . . . . 1.4 JDK7新特性<四> NIO2.0 文件系统 . . . 1.5 JDK...

    jdk7-aarch64-uos.tar.gz

    jdk7,openjdk7,适用于arm64、aarch64架构linux等国产化服务器,如银河麒麟V10、uos等服务器系统。 详细信息 jdk7 arm64 aarch64 。亲测可用。

    jdk7 免安装版 win64

    jdk7免安装版,可以正常使用,有问题可以联系我,JDK(Java Development Kit)就是Java的开发工具包,无论是开发javase,javaee,javaee.是给Java开发者必须用到的开发工具

    jdk-7u80-windows-x64.exe 【官方下载的jdk1.7、jdk7,windows 64位版】

    jdk-7u80-windows-x64.exe 【官方下载的jdk1.7、jdk7,windows 64位版】

    Java实现不规则窗体,透明窗体,JDK1.6新特性

    Java实现不规则窗体,透明窗体,JDK1.6新特性..演示源代齐全..

    jdk-7u80最终版

    JDK1.7最终版,jdk-7u80,包含文件如下: jdk-7u80-linux-i586.gz jdk-7u80-linux-x64.tar.gz jdk-7u80-windows-i586.exe jdk-7u80-windows-x64.exe

    jdk1.7 32位官方正式版 jdk-7u79-windows-i586 下载

    jdk-7u79-windows-i586.exe JDK7 稳定版 源官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    windows-java-jdk7

    jdk7安装包jdk7安装包jdk7安装包jdk7安装包jdk7安装包jdk7安装包jdk7安装包

    jdk7(Linux 平台jdk7 )

    linux平台的64位版本jdk7,官方原版,hash可匹配验证 。

    jdk7下载 Mac

    Mac版的jdk7,官网好像不好下,得登录Mac版的jdk7,官网好像不好下,得登录Mac版的jdk7,官网好像不好下,得登录Mac版的jdk7,官网好像不好下,得登录Mac版的jdk7,官网好像不好下,得登录Mac版的jdk7,官网好像不好...

    JDK7 Windows32位

    JAVA JDK7 1.7.80 Windows 32位版本,生产环境中亲自安装好用。

    Java JDK 7学习笔记 PDF

    Java JDK 7学习笔记 PDF

    jdk7安装程序

    jdk7安装程序

Global site tag (gtag.js) - Google Analytics