2015-10-19 82 views
0

我正在转换一个C#窗体窗体应用程序等效于一个Java swing应用程序,并且我卡在需要将窗口句柄传递给C++ JNI图层的位置。Windows窗体Panel.Handle等价于Java swing

在C++层,我有个函数接受void*指针作为窗口句柄 即

void SetWindowHandle(void* handle); 

在C#,它被简单地完成为:

obj.SetWindowHandle(videoPanel.Handle);//videoPanel is System.Windows.Forms.Panel 

在Java中,我已经使用JPanel而不是Windows.Forms.Panel创建了UI,但我不知道如何获取此JPanel的句柄。

任何想法,它是如何做到的? JFYI,这个窗口句柄在较低的C++层中用作渲染视频的句柄。

+0

他们使用他们的JFrame中的句柄 –

+0

@Thomas Cud给出了一些更多细节..特别是有没有可用于获取JPanel/JFrame句柄的直接属性或方法? – HRM

+1

我不是真的很快,但这可能会回答你的问题:http://stackoverflow.com/questions/386792/in-java-swing-how-do-you-get-a-win32-window-处理-HWND-参考到一个窗口 –

回答

0

我通过参考Thomas在评论部分提到的SO Post解决了这个问题。

需要指出的一点是,要使这种方法有效,您需要使用java.awt.Panel而不是javax.swing.JPanel,因为这是我犯的错误,浪费了一天!