`
alanland
  • 浏览: 641503 次
  • 性别: 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中实现半透明窗体

    ### JDK 7.0 中实现半透明窗体 随着 Java 技术的不断发展和完善,Java 开发者们有了更多的选择来提升用户界面的美观性和功能性。JDK 7.0 的发布标志着 AWT (Abstract Windowing Toolkit) 正式支持半透明窗体,这为...

    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 jdk-7u80-linux-x64 网盘下载

    ### JDK 7 (Java Development Kit 7) 版本介绍 #### 一、JDK 7 概述 JDK 7(Java Development Kit 7)是Java平台的一个重要版本,由Oracle公司发布。它是Java SE 7标准的实现,为开发者提供了用于编写Java应用程序...

    jdk7-aarch64-uos.tar.gz

    《深入解析JDK7在Aarch64架构下的应用与实践》 在当前的IT行业中,随着国产化软硬件的快速发展,对支持多种架构的软件需求日益增长。JDK7-aarch64-uos.tar.gz这个压缩包文件,便是针对arm64与aarch64架构的Linux...

    ARM64架构下的jdk7,适配最新架构,陈年代码

    在ARM64架构下,JDK 7可能包括对ARM...此外,还有其他社区和开发者为ARM64架构提供了JDK 7的构建版本,例如Arch Linux ARM提供了jdk7-openjdk 7.u261_2.6.22-1包,这是一个OpenJDK Java 7开发工具包,适用于aarch64架构

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

    在JDK 1.6版本中,Java引入了一些新特性,使得开发者能够创建更具吸引力和创新性的应用,比如不规则窗体和透明窗体。这些特性极大地扩展了Java GUI设计的可能性,让开发者能够构建出更符合用户审美的应用程序。 不...

    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 Windows32位

    JDK7是Oracle公司发布的第七个主要版本,它在JDK6的基础上增加了一些新特性,改进了性能,并修复了许多已知问题。Windows 32位版本的JDK7是专门为在32位操作系统环境下运行而设计的,确保了在这样的平台上开发和运行...

    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的核心,包括了...

    jdk7 32位最新版本,官网下载

    jdk7 32位最新版本,官网下载jdk7 32位最新版本,官网下载jdk7 32位最新版本,官网下载jdk7 32位最新版本,官网下载jdk7 32位最新版本,官网下载jdk7 32位最新版本,官网下载

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

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

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

    Java 7,也被称为JDK 7或Java SE 7 (Java Standard Edition 7),是在2011年发布的,引入了多项重要的新特性和改进。以下是其中的关键亮点: 1. **多语言支持**:Java 7增加了对其他编程语言的支持,如Groovy、Scala...

    Java JDK 7学习笔记 PDF

    Java JDK 7是Java开发工具包的一个重要版本,它的全称是Java Development Kit,是用于构建和运行Java应用程序的关键组件。这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些...

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

    ### JDK 7 (Java Development Kit 7) 版本特性及安装指南 #### 一、JDK 7 概述 JDK 7(Java Development Kit 7)是Oracle公司发布的Java开发工具包的一个版本,它包含了开发Java应用程序所需的工具、文档以及库...

    jdk7下载下载

    JDK7是Oracle公司发布的Java平台的一个重要版本,它的全称为"Java SE 7"(Java Standard Edition 7)。这个版本在2011年发布,引入了许多新特性和改进,旨在提升开发效率和增强程序性能。 1. **多语言支持**:JDK7...

    Jdk7-8-arm.rar

    JDK7和JDK8是两个不同版本的JDK,每个版本都有其特定的功能和改进,对于开发者来说,了解它们的区别和特性至关重要。 首先,JDK7是Java平台的一个重大更新,正式版本为7u40,它引入了多项新特性,如Try-with-...

    jdk7 免安装版 win64

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

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

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

    JDK 7 下载

    ### JDK 7 下载及其相关知识点 #### 一、JDK 7 概述 Java Development Kit (JDK) 是由Sun Microsystems(后被Oracle公司收购)提供的Java开发工具包,是开发Java应用程序的基础。JDK 7 作为Java SE 7 的标准实现,...

    jdk-7u80-Linux 安装包+安装教程

    在这个压缩包里,我们有两个主要的文件:`jdk-7u80-linux-i586.tar.gz` 和 `JDK安装.pdf`。这些文件都是针对Linux操作系统的,特别是对于使用32位(i586)架构的系统。 `jdk-7u80-linux-i586.tar.gz` 是JDK 7更新80...

Global site tag (gtag.js) - Google Analytics