jna 使用_使用JNA的透明JFrame
jna 使用
什么是Java本机访问(JNA) ?
JNA使Java程序可以轻松访问本机共享库(Windows上的DLL),而无需编写Java代码-无需JNI或本机代码。JNA允许您使用自然Java方法调用直接调用本机函数。
代码
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;import com.sun.jna.platform.WindowUtils;public class TransparentFrame extends JFrame {public TransparentFrame() {setTitle('Transparent Frame');setSize(400,400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JSlider slider = new JSlider(JSlider.HORIZONTAL, 30, 100, 100);slider.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {JSlider slider = (JSlider) e.getSource();if(!slider.getValueIsAdjusting()){WindowUtils.setWindowAlpha(TransparentFrame.this, slider.getValue()/100f);}}});add(slider);setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new TransparentFrame();}});}
}
JNA jar(platform.jar)中提供了WindowUtils类。 WindowUtils类的方法setWindowAlpha 用于使窗口透明。 此方法的第一个参数是您的框架/窗口,第二个参数是alpha值。 此类还具有一个称为setWindowTransparent的方法,该方法还可用于使窗口透明。
依存关系
您将需要以下2个jar来运行该程序:(两个jar文件都可以在GitHub上下载JNA 。)
- jna.jar
- platform.jar
要在Windows上运行以上代码,您将需要在调用WindowUtils函数之前设置“ sun.java2d.noddraw”系统属性。
System.setProperty('sun.java2d.noddraw', 'true');
输出量
补充笔记
我已经在以下机器上测试了此代码:
- Windows XP Service Pack 3(32位)
- Windows 7(32位)
- Cent OS 5(32位)
如果您在其他计算机上对其进行测试或使用JNA的其他计算机具有相同功能的代码,请随时将其作为对此文章的评论进行共享。
祝您编程愉快,别忘了分享!
参考: harryjoy博客上的JCG合作伙伴 Harsh Raval 使用JNA的透明JFrame 。
翻译自: https://www.javacodegeeks.com/2012/09/transparent-jframe-using-jna.html
jna 使用
jna 使用_使用JNA的透明JFrame相关推荐
- jna 构造函数_【JNA探索之路系列】之二:JNA API
工欲善其事,必先利其器,本篇文章就来详细探讨在JNA开源项目的工程中提供了哪些应用接口,它们分别提供了怎样的功能. JNA4.1.0的包结构如下所示: com.sun.jna com.sun.jna. ...
- 使用JNA的透明JFrame
在" 使JFrame透明"中,我展示了一种使用AWTUtilities类使框架透明的方法. 但是使用该类会导致访问限制编译时错误,该文章中还显示了Eclipse中的解析. 现在,这 ...
- java jna 数据结构_开源框架JNA的使用
Java开发过程中,有时候会需要和C,C++等交互,这时候我们就想起了经典技术JNI,但是JNI的使用过程十分繁琐,而且容易出现各种问题,还得封装而且问题不好定位.假如我们有一个.so文件,如果使用J ...
- java jna 视频,java之JNA
jna下载.PNG jna-platform pom.xml net.java.dev.jna jna-platform 如果直接引用jna-platform-5.6.0.jar,则可以直接使用本地类 ...
- led灯条维修_常见的LED透明屏型号规格,影响LED透明屏价格因素
LED 透明屏具有高通透.轻薄特点.LED透明屏型号规格有哪些,影响LED透明屏价格因素以下分享给大家: 透明 LED 显示屏型号 如可以看到 LED 透明屏规格如下: 由上表来分析: 1. 比如取幕 ...
- java 叉号关闭_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impo ...
- tde数据库加密_启用了基于透明数据加密(TDE)的地理复制的Azure SQL数据库
tde数据库加密 In this article, we will review how to set up Geo-Replication on a Transparent Data Encrypt ...
- 为什么存png还有白色底_用photoshop保存透明背景的图片为png格式,为什么打开后是白色背景了?...
Photoshop想要保存透2113明背景的图片要保存PNG格式,保存JPG格式就5261会变成图片.41021.电脑打开Photoshop.2.打1653开Photoshop后,打开一张图片.3.打 ...
- python png 背景透明_去除白色背景得到透明背景png的示例代码
[实例简介] 去除图像中的白色背景,得到透明背景的保留主体的png图像的python代码: [实例截图] 原图 去除白色背景后得到的图片 [核心代码] def remove_white_bg(img_ ...
最新文章
- 怎样才可以过大学英语六级啊,有没有好点的方法?【转载】
- 计算机用户账户添加,windows添加用户账户
- java ee 3.0_初识JavaEE 6 的 Servlet3.0
- Linux shell 基础语法
- 中移M5310A NBIoT模组通信测试命令
- python虚拟环境 pyenv_Python多版本管理和虚拟环境维护(pyenv, pyenv-virtualenv)
- pyqt一个text实时显示另一个text的内容_python:基于tkinter打造的股票实时监控声音报警器! 自动监控,声音警报...
- 固定资产中计算机软件类型,国税局固定资产的分类
- matlab建模总结,数学建模方法自己归纳总结(建模参考用,包含相应例题以及MATLAB...
- 火狐受信任站点设置_火狐浏览器如何添加信任站点?添加信任站点的方法说明...
- B. Neko Performs Cat Furrier Transform---异或的性质运用--Codeforces Round #554 (Div. 2)
- 基于STM32F429动态信号测试分析系统
- 网页使用中文字体的两种解决方案
- (环境搭建+复现)CVE-2020-1472 NetLogon 域内提权漏洞
- java 代码审查_代码审查(Code Review)清单
- ubuntu 18.04 安装
- 计算机中丢失krpt怎么办,计算机中丢失krpt。dll怎么办
- Vue.js 教程---菜鸟教程
- Unity学习笔记--Extension Method 扩展方法
- 用户界面设计黄金三原则