Java 窗口透明化(无边框)
这几天我在写一个记事本程序,为了方便记事本记事,我准备将记事本界面透明化。于是上网查了一下资料。然后将透明化界面做了出来。
可是在做的过程中我还是遇到了一些小小的问题,所以就把它记录了下来。
问题1:奇怪的错误(访问限制:Access restriction)
透明化窗体中有这样一段代码:
// 判断系统是否支持窗体透明化
if (com.sun.awt.AWTUtilities.isWindowOpaque(this)) {// 设置窗体透明化, 透明参数值[0, 1](float类型)com.sun.awt.AWTUtilities.setWindowOpacty(this, 0.5f);
} else {JOptionPane.showMessageDialog(this, "系统不支持 JDK版本过低或JRE系统库缺损");
]
这段代码明明是没有错的,但是Eclipse却偏偏报了错,这是为什么呢?
通过错误提示,点击 “Configure problem severity” ,我发现了问题所在,原来是eclipse的配置问题。
解决方法如下:
菜单栏找到 Window -> Preferences -> Java Compiler(中间可能省略几步,你可以搜索) -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference(access rules) 后面的 Error 下拉改成 Warning 或者 Ignore -> 确定。
然后就 OK 了!
问题二:郁闷的异常(IllegalComponentStateException)
当我所有的代码都写完之后,一运行,结果出现了编译异常。当时我想把它抛出去,但是我又是遇到问题不能放的人。所以就找了一下原因。
Exception in thread "main" java.awt.IllegalComponentStateException: The frame is decorated
at java.awt.Frame.setOpacity(Unknown Source)
at java.awt.Window$1.setOpacity(Unknown Source)
at com.sun.awt.AWTUtilities.setWindowOpacity(Unknown Source)
at Opacity.<init>(Opacity.java:18)
at Opacity.main(Opacity.java:7)
最后我终于发现了错误的原因,原来是由于我写的窗体是可显示的所以抛出了这样一个异常。
之后我在我的源代码之上加了这么一句就好了。
this.setUndecorated(true); // 禁用窗体装饰,加在前面就好了
关于这个函数我在 《JDK API 1.6.0中文版》查了一下,上面是这样说的。
/*setUndecorated
public void setUndecorated(boolean undecorated)禁用或启用此窗体的装饰。只有在窗体不可显示时才调用此方法。 参数:
undecorated - 如果没有启用窗体装饰,则为 true;如果启用了窗体装饰,则为 false。
抛出:
IllegalComponentStateException - 如果窗体是可显示的。
从以下版本开始:
1.4
另请参见:
isUndecorated(), Component.isDisplayable(), JFrame.setDefaultLookAndFeelDecorated(boolean)*/
测试源码:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;public class Opacity extends JFrame {public static void main(String[] args) {new Opacity();}Opacity() {this.setTitle("窗体透明化测试");JButton btn = new JButton();this.add(btn);double value = 0.4;// 判断是否支持透明度this.setUndecorated(true); // 禁用或启用此窗体的修饰。只有在窗体不可显示时//才调用此方法。if (com.sun.awt.AWTUtilities.isWindowOpaque(this)) {com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1 - value));} else {JOptionPane.showMessageDialog(this, "系统不支持 JDK版本过低或 JRE 系统库缺损");}this.setBounds(400,400,400,300);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);this.setVisible(true);}
}
Java 窗口透明化(无边框)相关推荐
- java 设置窗体 无边框 关闭按钮_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impo ...
- python 图标字体_Python+PyQt:使用图标字体打造无边框通用导航界面
Python是一种面向对象的高级动态编程语言,相比于其它如C/C++语言,具有上手快.代码少.开发效率高的特点,Qt是跨平台的C++图形用户界面应用程序开发框架,是当前主流的GUI开发工具之一,其在P ...
- python小技巧大应用--基础实用漂亮界面(无边框,圆角,可拖拽)
这回要实现一个漂亮的基础界面,要具有如下特色: 无边框,圆角,漂亮的背景,可拖拽移动,具有最小化,关闭按钮,界面与代码分离,支持qss 先展示一下最后的效果: 那就开始工作吧: 1.通过Qt Desi ...
- Electron无边框窗口(最小化、最大化、关闭、拖动)以及动态改变窗口大小
文章目录 一.目标原型 1. 目标 2. 原型设计 3. 原型初步实现 二.无边框窗口 1. 要点 2. 改造 三.可拖拽区 1. 要点 2. 改造 四.最小化.最大化.关闭 1. 要点 2. 改造 ...
- 【最终版】PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化,添加内容窗口
[最终版]PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化,添加内容窗口 文章目录 [最终版]PyQt5 自定义标题栏,实现无边框,最小化最大 ...
- PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化
PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化 文章目录 PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变 ...
- 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法...
在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出 ...
- QT实现可移动和改变尺寸的无边框窗口
2019独角兽企业重金招聘Python工程师标准>>> 实现QT无边框窗口的拖动,尺寸改变.需要的时候从该类继承,派生类需要定义为QWidget. 头文件: #ifndef SIZE ...
- C# WPF 建立无边框(标题栏)的登录窗口的示例
前言:笔者最近用c#写WPF做了一个项目,此前未曾做过完整的WPF项目,算是一边学一边用,网上搜了不少资料,效率当然是不敢恭维的,有时会在一些很简单的问题上纠结很长时间,血与泪的教训可不少. 不过,正 ...
最新文章
- 自动驾驶之多传感器融合-硬件篇(毫米波雷达)
- 【设计模式】业务代表模式
- our reuse project in HCP
- spring mvc学习(2):spring jar包下载
- 让服务器突破性能极限 阿里云神龙论文入选计算机顶会ASPLOS
- 解决:vue文本识别 “ \n ” 的换行问题(完整案例说明)
- 关闭保护火狐浏览器的保护与多余的加载项
- 三星Galaxy Note系列年底停产:被折叠屏手机/Galaxy S系列取代
- MYSQL主从同步(Windows到Windows)
- 用 Java 实现人脸识别功能
- 对象不支持“attachEvent”属性或方法的解决办法
- 调用远程摄像头进行人脸识别_【论文精选】基于人脸识别技术的燃气远程开户系统...
- 「干货」从动态的角度分析DDR的时序结构
- Linux不能连接蓝牙音箱,【搁浅St|开发日记】彻底解决dueros连接蓝牙音箱的问题...
- 算法小讲堂之B树和B+树(浅谈)|考研笔记
- 单月涨粉30w+,他们掌握引流法宝,小红书1月创作趋势是什么?
- php幻灯片图片不显示不出来,首页幻灯片中图片无法显示的解决办法
- Cadence Allegro PCB绘制:布线后的操作教程
- Unicode HOWTO 中文翻译
- 对三相电桥电路的理解
热门文章
- pyqt pyside2 QLabel 显示图片问题
- Restful 风格的通信接口
- java调用tshark_libtshark-core
- Arduino案例实操 -- 智能巡防小车(三)图形化巡线小车编程
- iOS-UIWebview WKWebView 页面缩放
- linux查找mysql安装目录_Linux下查看MySQL的安装路径
- 阿里云李飞飞:帮1000家企业“去O”,完成10000套传统数据仓库上云
- ABBYY OCR SDK免费试用了!
- 自己收集五款常用的HTML编辑软件
- chrome 搜索框记录_访问Google Chrome中的搜索框