`
行者买刀
  • 浏览: 192077 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

利用JNA实现透明(图片透明,自定义不规则多边形透明)

阅读更多

          自Windows的透明技术出现以后,它的漂亮的外观一直为很多程序员所爱.目前jdk 6 u 10已经把透明这块相应的包加进来了,需要的程序员可以去下载了.这里就介绍下怎么使用JNA实现透明.先看下面的代码吧:

         

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.lgh.lucency;

import com.lgh.pic.Pic;
import com.sun.jna.examples.WindowUtils;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ToolTipManager;

/**
 *
 * @author lgh
 */
public class LucencyTest2 {

    public LucencyTest2() {
        this.initJFrame();
    }

    public static void main(String[] args) {
        ToolTipManager.sharedInstance().setInitialDelay(0);
        ToolTipManager.sharedInstance().setLightWeightPopupEnabled(true);
        new LucencyTest2();
    }

    private void initJFrame() {
        final JFrame jf = new JFrame("透明");

        jf.setUndecorated(true);
        jf.setSize(400, 300);
        jf.setLayout(new BorderLayout());
        JPanel jp = new JPanel() {

            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(Pic.statResult, 0, 0, jf);
 
            }
        };
//        jp.setToolTipText("<html><center><font color=blue size=+2>" +
//                "ToolTipDemo.moo" + "</font></center></html>");
//        jp.setToolTipText("<html><center><font face=AvantGarde size=+1 color=white>" +
//                ("ToolTipDemo.got_milk") + "</font></center></html>");

        jf.add(jp, BorderLayout.CENTER);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        //移动
        MouseMotionUtil mmu = new MouseMotionUtil();
        mmu.addMouseMotionListener(jf, jp);


        //透明
        //1.根据图片来透明
//        WindowUtils.setWindowAlpha(jf, 0.01F);
//        WindowUtils.setWindowMask(jf, new ImageIcon(Pic.statResult));
        //2.根据shape外观来进行做形状
        //2.1简单的圆
//        RoundRectangle2D.Float mask = new RoundRectangle2D.Float(0, 0, jf.getWidth(),jf.getHeight(), 100, 100);
//        WindowUtils.setWindowMask(jf, mask);
        //2.2另一种不规则外形
        Polygon polygon = new Polygon();
        polygon.addPoint(200, 300);
        polygon.addPoint(400, 0);
        polygon.addPoint(0, 0);
        WindowUtils.setWindowMask(jf, polygon);
        jf.setVisible(true);
    }
}

 根据图片透明的效果如下:

   

根据四边形透明的如下:

  


 
 

根据三角形的透明的效果如下:

  

 
 

 

  • 大小: 68.6 KB
  • 大小: 77 KB
  • 大小: 84.9 KB
分享到:
评论

相关推荐

    jna 实现回调函数 code.zip

    jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip

    JAVA利用JNA调用DLL

    JAVA 利用JNA调用C程序32位或者64位dll 实例,直接解压运行。

    利用jna在java下调用c语言库文件

    在此编了一个利用jna在java平台下调用c语言动态链接库的例子,c++代码也已经提供,java代码已经调试通过。

    JNA实现回调及其他

    JNA调用C/C++简单demo,包含文档及简单Demo,基本使用的都包含

    android studio 上实现JNA

    android 实现jna的所有东西.简单易懂. 

    jna-4.5.1 , jna-4.5.1-sources , jna-platform-4.5.1 jar包

    JNA提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java...

    Java实现获取窗口句柄并操作窗口jna-4.4.0

    Java实现获取窗口句柄并操作窗口 JNA Java实现获取窗口句柄并操作窗口 JNA

    jna和examples的jar包

    jna和examples的jar包,主要用于JFrame透明、不规则形状的JFrame

    jna jar实现java调用dll

    MyEclipse 6.5 导入就可测试 绝对能跑起来 实现 java 通过 jna 包 调用dll

    Swing透明切,美观啊(源码奉送)

    * 或者WindowUtils.setWindowMask(window, icon)就可以了,但是要注意一点必须设置System.setProperty("sun.java2d.noddraw", "true"),否则JNA会告诉你这个程序不支持透明。当然要运行起来,还得需要 * 两个Jar...

    JNA 回调 范例 C++异步回调实现

    这几天搞搞JNA,主要是组内小弟靠不住。 找了下资料,居然没有回调函数的样例,郁闷的我不行,于是就自己折腾一晚上,自己实现一个。 C++部分使用ACE实现了一个线程,线程中调用Java部分的回调函数。 C++使用vc8...

    JNA实例 JNA实例 JNA实例

    JNA实例=======================================================JNA实例

    jna和examples.zip

    jna和examples的jar包,主要用于JFrame透明、不规则形状的JFrame,挺难找的jar包,免费分享

    深入浅出JNA

    描述jna实现dll调用的文档,替换原有JNI方式

    JNA-5.7.0 jna-platform-5.7.0

    JNA-5.7.0 jna-platform-5.7.0

    jna-5.5.0.jar中文文档.zip

    ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件...

    jna-5.9.0.jar

    2021 最新JNA jar包,jna-5.9.0

    JNA最新源文件jar包

    开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射,大大降低了Java调用本体共享库的开发难度。JNA与.NET平台上的P/Invoke机制一样简单和方便。

    jna-examples.jar

    从maven中得到的jna.jar里面没有examples的类(坑了我)。所以找到了一个examples包下面不是空的jna.jar.

Global site tag (gtag.js) - Google Analytics