Java透明窗体的设置方法

 更新时间:2019年03月03日 16:21:05   投稿:laozhang  
在本文中我们给大家整理了关于Java透明窗体的设置方法以及需要注意的地方,需要的朋友们学习参考下。

若将JDK版本升级到最新版本,Java窗体就可以简单实现窗体的透明效果,用户可以通过拉动滑块(Slider)调整窗体透明度,实现窗体不同透明程度的切换。下面让我简单实现窗体透明效果,用户可以做些扩展。

步骤(STEPS)

打开Java开发工具Eclipse软件,依次选择“文件”、“新建”、“项目”,在“新建项目”窗口中选择“Java项目”,然后点击“下一步”按钮。

在出现的窗体中的“项目名称”后自定义输入项目名,然后点击“完成”按钮完成项目的创建。

右击创建的项目,在右键列表中依次选择“新建”、“类”,在“新建类”窗体中输入自定义类名,勾选相应复选框,点击“完成”按钮完成类的创建。

首先,做一些初始化窗体的工作,导入javax.swing.JFrame类,实现JFrame的继承,初始化构造方法头并在main方法内实例化此类以便做测试。

下面,在构造方法中创建窗体,导入javax.swing.JButton类,在窗体内加入按钮,保持按钮默认的布局方式,最后设置窗体显示,运行程序查看初始效果。

运行Java程序后,将出现如下图所示的初始化窗体界面,用户需关闭窗体做下一步代码的编写。

添加按钮BTN的ActionListenr()单击事件,在出现的错误中点击错误处,然后自动导入ActionListener类,但是仍然出现错误,用户需再次点击错误处以添加必要的方法实现。

当用户解决两次错误后,系统自动导入了所需包和加入了所需单击事件的必要方法,直至此步,按钮单机事件的代码如下图所示。

新建setOpacity()方法并在按钮的单击事件中调用此方法,然后在此类中作为属性成员加入JSlider滑块控件。

在新建的setOpacity()方法中添加如下代码,设置dialog窗体的大小、位置、大小不可改变等属性,用户可自定义设置属性。

创建JLabel,添加slider滑块的滑动事件,并在事件中加入方法slider(),当然此方法需要新建,待会再新建,让我们先把setOpacity()方法中的代码添加完成。

继续在setOpacity()方法中添加代码,在窗体dialog中加入panel控件,再将lable和slider加入到panel中。

在方法slider()中添加代码,获取slider的值以改变透明度值,设置鼠标移入滑块时的鼠标指针样式。

运行Java程序,并点击按钮,然后出现调整透明度的窗体,用户就可以设置窗体透明度,show出你的个性。

注意事项(ATTENTIONS)

由于滑块的值必须为整数,并且透明度是0.0-1.0,所以滑块这样设置:JSlider slider=new JSlider(0,9,0),滑块的值除以10.0:double value=slider.getValue()/10.0,透明度设置:com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value))。
由于滑块的值必须为整数,并且透明度是0.0-1.0,所以滑块这样设置:JSlider slider=new JSlider(0,9,0),滑块的值除以10.0:double value=slider.getValue()/10.0,透明度设置:com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value))。

JSlider(0,9,0):JSlider(最小值,最大值,初始值)。

JSlider(0,9,0):JSlider(最小值,最大值,初始值)。

com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value)):com.sun.awt.AWTUtilities.setWindowOpacity(当前窗体, 不透明度值),不透明度值越小窗体越透明,当value值越大时,(float)(1- value)值越小,船体越透明。

com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value)):com.sun.awt.AWTUtilities.setWindowOpacity(当前窗体, 不透明度值),不透明度值越小窗体越透明,当value值越大时,(float)(1- value)值越小,船体越透明。

用户在导入包时,可以简化包的导入,import java.awt.*、import java.awt.event.*分别表示导入awt及awt.event下的所有类。

用户在导入包时,可以简化包的导入,import java.awt.*、import java.awt.event.*分别表示导入awt及awt.event下的所有类。

相关文章

  • SpringBoot中使用@ControllerAdvice注解详解

    SpringBoot中使用@ControllerAdvice注解详解

    这篇文章主要介绍了SpringBoot中使用@ControllerAdvice注解详解,@ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理,需要的朋友可以参考下
    2023-10-10
  • mybatis plus条件构造器queryWrapper、updateWrapper

    mybatis plus条件构造器queryWrapper、updateWrapper

    这篇文章主要介绍了mybatis plus条件构造器queryWrapper、updateWrapper,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java 如何快速实现一个连接池

    Java 如何快速实现一个连接池

    有没有一个通用的库可以快速实现一个线程池呢?得益于 Java 完善的生态,前人们针对这种需要开发了一个通用库:Apache Commons Pool(下文简称 ACP)。本质上来说,ACP 库提供的是管理对象池的通用能力,当然也可以用来管理连接池了!
    2021-05-05
  • Java Spring 循环依赖解析

    Java Spring 循环依赖解析

    这篇文章主要介绍了Java Spring 循环依赖解析,Spring 现在其实是我们 Java 程序开发离不开的基础框架,个人觉得除了 JDK 我们用得最多的 Java 中间件就是 Spring ,今天我们一起来学习一下 Spring 的循环依赖。下面详细内容需要的小伙伴可以参考一下
    2022-02-02
  • Spring 与 JDK 线程池的简单使用示例详解

    Spring 与 JDK 线程池的简单使用示例详解

    这篇文章主要介绍了Spring 与 JDK 线程池的简单使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • idea中MavenWeb项目不能创建Servlet的解决方案

    idea中MavenWeb项目不能创建Servlet的解决方案

    这篇文章主要介绍了idea中MavenWeb项目不能创建Servlet的解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 关于IDEA 2020.3 多窗口视图丢失的问题

    关于IDEA 2020.3 多窗口视图丢失的问题

    这篇文章主要介绍了关于IDEA 2020.3 多窗口视图丢失的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java并发CopyOnWrite容器原理解析

    Java并发CopyOnWrite容器原理解析

    这篇文章主要介绍了Java并发CopyOnWrite容器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Spring的编程式事务TransactionTemplate的用法详解

    Spring的编程式事务TransactionTemplate的用法详解

    TransactionTemplate提供了一种在代码中进行编程式事务管理的方式,使开发人员能够在方法级别定义事务的开始和结束点,本文介绍了Spring框架中TransactionTemplate的用法,感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • Spring中ApplicationEvent事件机制源码详解

    Spring中ApplicationEvent事件机制源码详解

    这篇文章主要介绍了Spring中ApplicationEvent事件机制源码详解,Spring中与事件有关的接口和类主要包括ApplicationEvent、ApplicationListener,下面来看一下Spring中事件的具体应用,需要的朋友可以参考下
    2023-09-09

最新评论