jdk1.6中如何获得Windows窗体的HWND? Windows下使用JDK1.6进行SWING开发,需要获得当前窗体(如JPanel)的HWND?网上可以搜到的使用DrawingSurfaceInfo的方法,似乎在1.4以后已经失效了。不知道哪位有比较好的,确保可以使用的方法能够提供。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C吧。 写个dll. 使用WindowsApiFindWindow(NULL,_T("你的窗口标题")); 设JPanel 为pJComponent c=p;while(! c instanceof JFrame) c=c.getParent(); HWND?java里没有这个概念的你vc用多了吧 不知道windows程序的 HWND java中有没有 HWND是VC里的概念,一定要的话用JNI调吧 我使用JAVA SWING写了一个主窗体,其中有一个用于进行三维渲染的JPanel。我使用OpenGL写了一个C++的动态链接库,通过SWIG转化为JAVA可以调用的形式。现在希望能够获得这个JPanel的窗体本地句柄,然后传给这个C++写的链接库,然后OpenGL渲染在我指定的这个JPanel上。因此,我想知道,在Linux/Windows下,如何获得SWING窗体的本地句柄。如果这个方案不行,我希望有人能提供个我一个别的替代方案。谢谢!! 没看明白你到底是要得到JPanel的Handle还是JPanel所在JFrame的Handle.首先,swing 的大部分组件都是swing自己画出来的。 底层windows根本不知道这些组件。所以windows中也就没有它们的Handle. JPanel 好像(记得好像是)就是这样的一个组件,它是一个轻量级的。但是JFrame 不是的,你可以 windows 中找到它的Handle.用java 实在不知道如何能得到JFrame的Handle. 不过,用 VC写一个很简单的DLL是可以实现的。核心代码就是FindWindow(NULL,_T("window title")) 这个windows api,它返回的结果就是 HWND . 用JNI 调这个Dll就可了。 我刚刚试过,完全可以实现。 另外可以考虑 SWT . 他的实现机制是不同于swing的。 嗯,谢谢楼上的回复,我也做了类似的实验。发现JPanel无法完成我所需要的功能。我采用SWT来实现了。 AWT的窗体也是本地的控件,是否有办法能够获得AWT窗体的句柄呢?我看了网上的一些资料,都是通过获得同位体的方法来实现的,但在现在的JDK中已经不允许用户直接操作同位体了,DrawingSurface也无法获得了。还有什么办法可以用来获得AWT控件的句柄呢? 《求助》怎么让这个while循环停止 Win7 下软件安装无法创建桌面快捷式(自己开发打包的) 面试时遇到一些考基础的逻辑问题!如何提高这方面的能力! 请问java 和 Flex 是什么关系 如何保留2位小数!! 新年送高分! Iterator的数据结构是什么呢? 大家都用哪些IDE开发? 关于线程的问题(很有必要搞清楚的概念,你可不一定知道) Decafe pro3.9这个反编译.class文件的软件是否是免费版? 问题:有关移动sp于网关痛信的问题 线程中有循环,如何能够安全中止线程
FindWindow(NULL,_T("你的窗口标题"));
JComponent c=p;
while(! c instanceof JFrame)
c=c.getParent();
java里没有这个概念的
你vc用多了吧
首先,swing 的大部分组件都是swing自己画出来的。 底层windows根本不知道这些组件。所以windows中也就没有它们的Handle. JPanel 好像(记得好像是)就是这样的一个组件,它是一个轻量级的。但是JFrame 不是的,你可以 windows 中找到它的Handle.用java 实在不知道如何能得到JFrame的Handle. 不过,用 VC写一个很简单的DLL是可以实现的。核心代码就是FindWindow(NULL,_T("window title")) 这个windows api,它返回的结果就是 HWND . 用JNI 调这个Dll就可了。 我刚刚试过,完全可以实现。
另外可以考虑 SWT . 他的实现机制是不同于swing的。