关于Java如何在windows 7 32bit 实现毛玻璃透明
(2012-01-07 19:54:12)
有图有真相!
首先学会在JAVA中调用DLL
编译环境:CMD、VS2010.(eclipse无法通过编译!)
本人用代码讲解!
以下是JAVA代码:
第一步:
public class DLLtest {
public native void
displayshow();//用native声明方法
static
{
//将加载DLL的函数代码放到静态模块中
System.out.println("进入加载");
System.loadLibrary("hurry");//
加载DLL文件,hurry既为DLL的名字
}
public static void main(String[] args) {
new
DLLtest().displayshow();//new出类并调用方法。
}
}
第二步:到CMD下进行编译 也就是javac DLLtest.java
第三步:编译完后用javah 在编译成.h文件,也就是javah DLLtest
此时在你类的目录下会多出一个DLLtest.h文件。
第四步:
将.h文件放到VS2010的include的目录下,关于include目录在哪,自己可以用资源管理器右上角的搜索功能找,这里不多说。
第五步:
编写C++代码,用VS2010写DLL,具体如下:
打开VS2010
新建->项目->在左边选择Win32->Win32项目
名称随便输入例如hurry
然后会出现一个Win32应用程序向导,点下一步,选择DLL->完成!
C语言代码:
#include <Windows.h>
# include "DLLtest.h"
JNIEXPORT void JNICALL Java_DLLtest_displayshow(JNIEnv
*env,jobject obj)
{
printf("FUCK!!!我终于TM成功了!!\n");
system("pause");
return;
}
在解决方案的资源管理器中右键你的CPP文件->属性->找到预编译头->在预编译头中选择不适用预编译头。
最后点编译。
第六步:
将生成的DLL文件放到类的目录中
最后一步:
运行!
我说的你们听明白了么?
如果听明白了,那么实现毛玻璃的方法就不难了,只简单的调用WIN API而已
先看我JAVA代码
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AeroTest extends JFrame{
public native void AeroShow();
static {
System.out.println("进入加载");
System.loadLibrary("AeroCall");
}
JPanel redPanel=new JPanel();
JButton testButton =new JButton("测试组件:按钮");
public AeroTest(){
redPanel.add(testButton);
redPanel.setBackground(Color.red);//务必将面板设置成红色
this.setTitle("毛玻璃测试");//必须设置标题头
this.setSize(800,500);
this.getContentPane().add(redPanel);
this.setVisible(true);
}
public static void main(String[] args) {
AeroTest AeMain=new
AeroTest();
AeMain.AeroShow();
}
}
以下是C语言代码
#include <jni.h>
#include "AeroTest.h"
#include <stdio.h>
#include <iostream>
#include <Windows.h>
#include <WinUser.h>
#include <Uxtheme.h>
#include <dwmapi.h>
#pragma comment (lib, "Uxtheme.lib")
#pragma comment (lib, "dwmapi.lib")
using namespace std;
JNIEXPORT void JNICALL Java_AeroTest_AeroShow(JNIEnv *env,jobject
obj)
{
HWND hwnd = FindWindow(NULL,L"毛玻璃测试"); //查找 标题为
"毛玻璃测试"的对话框
SetWindowLong(hwnd,GWL_EXSTYLE,
GetWindowLong(hwnd,GWL_EXSTYLE)^0x80000);
SetLayeredWindowAttributes(hwnd,0x0000ff, 255, LWA_ALPHA |
LWA_COLORKEY); //设置透明
MARGINS mar={-1};
DwmExtendFrameIntoClientArea(hwnd,
&mar);
//毛玻璃范围
return;
}
其实实现的方法很简单,在JAVA中将面板的颜色设置成红色并设置窗口标题,C语言的代码的意思是找到窗口,然后把红色的地方全部变成毛玻璃透明~~~
就是这么简单~懂了么?
分享到:
相关推荐
本教程将专注于一个特定的主题——"毛玻璃效果"(也称为模糊背景或亚克力效果)在Java Swing中的实现。 毛玻璃效果是一种设计趋势,它在界面上创建半透明、模糊的背景,以突出显示前景元素。在Java Swing中,我们...
实时、动态的毛玻璃效果,javaSwing 实现的,ios7的毛玻璃效果可以让用户的注意力集中到他需要注意的地方,本demo根据之前写的例子改变而来,实现了实时、动态的毛玻璃效果,希望给有需要的人一点帮助,因为花了点...
在Android开发中,实现“高斯模糊”或“毛玻璃效果”是一种常见的视觉设计手法,它能够为用户界面增添一种柔和且神秘的美感。这种效果通常用于背景图像,以突出前景元素,提升整体UI的层次感。为了在Android应用中...
用java swing实现ios7的毛玻璃效果,毛玻璃效果实则是图片的高斯模糊滤镜处理。本demo非常简易的实现可调模糊的半径和可选填充蒙上一层透明颜色。
* 以前或许大家对一个UI组件是否透明没有那么关心,但是自从Vista的毛玻璃出现后, * UI透明就成了大家非常关注的一个话题,于是Java阵营开始了铺天盖地的讨论如何实现透明的效果, * 但是很不幸的是无论组件...
在这个项目中,开发者可能使用了Java语言以及Android SDK来构建一个应用,该应用提供了多种图像处理效果,如毛玻璃效果、区块整体涂鸦、马赛克方格以及跟随手指涂鸦的功能。 描述中提到,这个安卓应用是针对图片...
- **NEON**:Win10的毛玻璃设计风格。 - **Material**和**Light**:Win10流畅设计的两个关键元素。 4. **需求概述** 计算器需具备基础运算和科学计算功能,支持长串公式输入的自动解析。为了提高用户体验,界面...