利用JNA实现透明(图片透明,自定义不规则多边形透明)
程序员文章站
2024-03-16 19:50:58
...
自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);
}
}
根据图片透明的效果如下:
根据四边形透明的如下:
根据三角形的透明的效果如下:
上一篇: 【省选模拟】多边形(凸包DP)
推荐阅读
-
利用JNA实现透明(图片透明,自定义不规则多边形透明)
-
如何利用CSS实现图片的透明效果_html/css_WEB-ITnose
-
WPS文字利用透明文本框实现在图片上添加文字说明
-
利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的_html/css_WEB-ITnose
-
如何利用CSS实现图片的透明效果_html/css_WEB-ITnose
-
介绍两种利用CSS实现背景图片透明而文字不透明的特效代码
-
利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的_html/css_WEB-ITnose
-
介绍两种利用CSS实现背景图片透明而文字不透明的特效代码
-
WPS文字利用透明文本框实现在图片上添加文字说明