Java 7 Swing:创建半透明和成形的Windows

Java 7 Swing支持具有透明和非矩形形状的窗口。 以下屏幕截图显示了创建的不透明度为75%的圆形窗口。

您可以通过在JFrame上使用setOpacity方法更改其不透明度来创建半透明窗口。 请注意,只有底层操作系统支持时,您才能创建半透明窗口。 另外,通过调用setUndecorated(true)确保窗口未装饰。 半透明圆形框架

改变窗口的形状,调用setShape内部方法componentResized方法,因此,如果窗口大小,形状被重新计算为好。

创建半透明圆形窗口的示例代码如下所示:

import java.awt.Color;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.GridBagLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.geom.Ellipse2D;import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;public class TranslucentCircularFrame extends JFrame {/*** Creates a frame containing a text area and a button. The frame has a* circular shape and a 75% opacity.*/public TranslucentCircularFrame() {super("Translucent Circular Frame");setLayout(new GridBagLayout());final JTextArea textArea = new JTextArea(3, 50);textArea.setBackground(Color.GREEN);add(textArea);setUndecorated(true);// set the window's shape in the componentResized method, so// that if the window is resized, the shape will be recalculatedaddComponentListener(new ComponentAdapter() {@Overridepublic void componentResized(ComponentEvent e) {setShape(new Ellipse2D.Double(0, 0, getWidth(), getHeight()));}});// make the window translucentsetOpacity(0.75f);setLocationRelativeTo(null);setSize(250, 250);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {// Create the GUI on the event-dispatching threadSwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();// check if the OS supports translucencyif (ge.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {new TranslucentCircularFrame();}}});}
}

参考: Java 7 Swing:由我们的JCG合作伙伴 Fahd Shariff在fahd.blog博客上创建半透明和成形的Windows 。

翻译自: https://www.javacodegeeks.com/2013/07/java-7-swing-creating-translucent-and-shaped-windows.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac mysql创建本地数据库_【mac】配置本地数据库

1.【安装数据库】brew 安装mysql -- brew install mysql安装成功后在命令行敲入 which mysql 查看安装路径2.【配置数据库】如果直接打mysql会报错,需要将mysql添加到环境变量,具体方法参阅后台学习-环境变量检查mysql是否启动 ps -ef | grep mysqld开启…

糖豆人维修服务器多长时间,服务器不稳定的《糖豆人》凭啥还这么火?只因做到了这三点...

8月4日,《糖豆人:终极淘汰赛》在steam平台上线,不到一周的时间直接登上steam畅销榜第六位。这款看起来似乎并不具备3A制作级别的游戏,到底是怎么获得了这么多玩家的追捧和青睐的呢?不妨跟着汇智妹一起看看这款游戏到底…

虚拟机游戏获取服务器地址,vue获取服务器地址

vue获取服务器地址 内容精选换一换Atlas 500 Pro 智能边缘服务器(型号 3000)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 500 Pro 智能边缘服务器 用户指南(型号 3000)》,安装操作系统完成后,配置业务网口IP地址,请参见配…

使用Selenium和HTML中的动态ID进行Java测试

Selenium最酷的方面之一是,您不仅可以使用网站进行录制,还可以将其实际用作junit测试。 首先,我将在Firefox中安装Selenium(因为这是正式版本)并进行快速测试。 重要的是要注意,Selenium将为您提供多种不同…

查看表空间名称、大小、使用大小、剩余大小和使用率

查看表空间名称、大小、使用大小、剩余大小和使用率: SELECT a.tablespace_name "表空间名称", total / (1024 * 1024) "表空间大小(M)", free / (1024 * 1024) "表空间剩余大小(M)", (total - free) / (1024 * 1024 ) "表空…

编译安装PHP-7.2.8

一 下载并软件包 wget http://124.205.69.169/files/A218000006E9730A/cn2.php.net/distributions/php-7.2.8.tar.gz tar xf php-7.2.8.tar.gz cd php-7.2.8 二 安装依赖程序 yum -y install pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c autoconf libjpeg l…

常用操作符

2 1. 转换类型数据,可以先定义一个数据,然后在采用调用的方法进行转换。 2. 进行查看相关数据,使用type类型数据进行查看,例如:type(**),然后就可以查到所属的类型了。但是对于单个字符来说,例如红线方…

重要通知,事关校营宝新老用户,敬请知悉!

尊敬的校营宝用户,感谢您选择校营宝培训学校管理系统,我们的发展离不开您的支持鼓励,只要您选择校营宝,就是我们的终身客户,我们承诺给您终身的售后咨询服务! 校营宝培训学校管理系统是面向校外艺术类培训…

从条纹边框的实现谈盒子模型

类似下面这个图形,只使用一个标签,可以有多少种实现方式:(不考虑兼容性的情况下) 假设我们的单标签为 div : 定义如下通用 CSS: div{ position:relative; width: 180px; height: 180px; } NO.1 方案一:div上是棕色背景&#xf…

Android_(游戏)打飞机04:绘画敌机、添加子弹

(游戏)打飞机01:前言  传送门 (游戏)打飞机02:游戏背景滚动  传送门 (游戏)打飞机03:控制玩家飞机   传送门 (游戏)打飞机04:绘画敌机、添加子弹   传送门 (游戏)打飞机05:处理子弹,击中敌机&am…

关于HTML5本地持久化存储的Web SQL、Local Storage、Cookies技术

在浏览器客户端记录一些信息,有三种常用的Web数据持久化存储的方式,分别是Web SQL、Local Storage、Cookies。Web SQL作为html5本地数据库,可通过一套API来操纵客户端的数据库(关系数据库),下面是支持浏览器…

死锁

7.1 系统模型 定义:多个进程竞争一定数量的资源,某个进程申请资源,若此时该资源不可用,则进程进入等待状态。若所申请的资源被其他等待进程占用,则该等待进程可能再也不法改变其状态。 进程使用资源的顺序:…

mysql lepus_MySQL 监控软件lepus天兔

概述类别版本操作系统Centos 7.4数据库版本MySQL 5.6.49天兔版本lepus 3.7依赖软件1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据)2.Apache 2.2及以上 (必须,WEB服务器运行服务器)3.PHP 5.3以上 (必须,提供WEB界面支持)4.Python2 (必须,推荐2.6及以上版本,执行数据采集和…

模式的秘密--工厂模式

工厂模式概念: 实例化对象,用工厂方法代替new操作工厂模式包括工厂方法模式和抽象工厂模式抽象工厂模式是工厂方法模式的扩展工厂模式的意图: 定义一个接口创建对象,但是让子类决定哪些类需要被实例化。工厂方法把实例化的工作推迟…

Html5移动开发之Localstorage(本地存储)

HTML5本地存储Localstorage自从Html5中出现了本地存储的(LocalStorage)的概念后,很多人都会想这个东西和我们传统web开发中的Cookie有什么特别之处,当然笔者也是其中之一,也难怪,以前用惯了cookie对于新出现的事物总是…

java response 获得code_Java教程分享使用HttpClient抓取页面内容

Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求1.简介HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和…

linux mysql 5.6.23_MySQL 5.6.23升级到MySQL 5.7.9

MySQL 5.6.23升级到MySQL 5.7.9MySQL 5.7.9新特性一、安全性1.1. 用户表 mysql.user 的 plugin字段不允许为空, 默认值是 mysql_native_password,而不是 mysql_old_password,不再支持旧密码格式;1.2. 增加密码过期机制,过期后需要…

2018-03-02

1、首先我得重新在git设置一下身份的名字和邮箱(因为当初都忘了设置啥了,因为遇到坑了)进入到需要提交的文件夹底下(因为直接打开git Bash,在没有路径的情况下,根本没!法!改&#xf…

查看环境变量有无配置成功等命令操作

查看环境变量有无配置成功 :windowR cmd set(回车) 现在可以看到配置成功的环境变量NVM_HOME NVM_SYMLINK等环境变量 也可以单独查看某个变量有无配置成功,例如set NVM—HOME. 转载于:https://www.cnblogs.com/JavascriptAndHtml5/p/9469932…

WildFly 8.0.0.Alpha1的发布和一些历史

自从我们发布WildFly 8.0.0.Alpha1版本以来, 已经过去了大约2周。 该下载位于WildFly下载页面上 。 我敢肯定,你们中的许多人可能会想知道WildFly是什么,而其中一些知道它是什么的人可能不会知道已经发布了。 我将尝试回答其中一些问题&#…