SunKing's Blog

留言簿(42)

Java链

友链

阅读排行榜

评论排行榜

[原创]Java实现不规则窗体(JDK1.4+JNI)

效果图:
1.gif

    很多软件如:QQ,Winamp等等都使用到各种不同规则的窗体,那么,在JAVA中如何实现不规则窗体呢?
    Java这方面的文章或代码是少之又少,在JavaWorld上有一篇文章实现了JDK1.3环境下显示笑脸的窗体(如下图),严格来说此文实现的是Canvas本地绘制。

 

    另外我还找到一个小日本的介绍透明Frame的网站,上面介绍他们实现的不规则窗体(如下图,其实他们实现的是透明窗体),他们用Robot.createScreenCapture的方法截屏然后画在窗体上,甚至用到线程来循环截屏, 可以说是笨得不行。没办法,就小日本那智商也只能做到这种地步,对它们也不能要求那么高。

 

CaptureTest1 の実行例

 

    我自己也做了一个不规则窗体的小软件,自我感觉良好,炫耀一下。:D

 
请注意:
    这是一个非开源软件,请不要向我要源码,谢谢。
 
申明:
    本软件为非开源软件,仅作学习用途。
    未经授权禁止转载、摘编、复制或建立镜像。
    如有违反,追究法律责任。
    作者:罗时民(SunKing)
    Email:SunKingXie@hotmail.com
实现功能:
    任何不规则透明图片都可作为窗体的外形。
原理:
    Java 调用 JNI。具体一点就是Java类中的native方法调用VC++实现。
重点:
    VC中调用SetWindowRgn方法可使窗体按给定的HRGN参数绘制窗体。
 
运行环境:
    在正常安装JDK1.4以上版本的机器上,解压下载的文件得到IrregularJFrame.exe和IrregularJFrame.dll两个文件,将这两个文件放在同一目录下。运行IrregularJFrame.exe

下载:

IrregularJFrame.zip

posted on 2005-08-16 18:03 SunKing's Blog 阅读(3482) 评论(9)  编辑  收藏

评论

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2005-10-31 11:26 任晓炜

框架是否用c制作的? 如果不是的话能不能指点一下,我想多学点!  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2005-10-31 11:28 sunking

对的, 是用C做的JNI
重点:
VC中调用SetWindowRgn方法可使窗体按给定的HRGN参数绘制窗体。  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2005-12-25 16:15 曹凯

你能不能说一下用C怎么来做DLL呢?具体到你的这个程序啊!我真的想学!谢谢!
我的邮箱:caokai1818@sina.com  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2006-02-08 15:23 leave

Sunking 很多东西都是通过jni来实现的。不过这样实现会让程序的可移植性降低。  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2006-02-08 15:28 sunking

对的, 是会有移植性问题的.
这个程序只能运行在WINDOWS中.
毕竟,我不能象SUN那样写出适合各种操作系统的native实现.我也不懂linux上如何做这件事,呵呵, 不好意思.  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2006-05-27 10:39 雷涛

很不错的一个实现方式,不知作者还有没有其它思路呢?比如直接用jdk类库实现,那样可以比较方便移植,谢谢!  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2006-11-24 14:38 redhat

为什么要用dll文件呢.可以在unix下运行吗?  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2007-09-08 11:46 njren

JNI+MFC
还可以实现透明窗体呢!  回复  更多评论   

# re: [原创]Java实现不规则窗体(JDK1.4+JNI) 2007-12-28 19:29 guoke

哥们,有源码吗?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: