我正在使用JNIWrapper以及该库的JAWT子组件。
我正在尝试通过以下代码获取对JAWT_DrawingSurface的锁定:
JAWT_DrawingSurface *ds = NULL;
ds = awt.GetDrawingSurface(env, comp);
dsLocked = !(ds->Lock(ds) & JAWT_LOCK_ERROR)
但是我不断得到dsLocked
为假。
comp
通过以下方式从Java发送到此JNIWrapper代码:
Component panel = new VideoViewport().getDisplay();
panel.setBounds(150,150,150,150);
System.out.println("Handle: " + core.utils.X11.X11Utils.getDrawable(panel));
通过运行panel
或VideoViewport()
对getDisplay()
并没有做太多事情,而且我不知道哪些细节是有意义的。
什么样的事情会导致获取表面上的锁失败?
答案 0 :(得分:0)
必须将该组件添加到框架中并使其可见。
当我将组件添加到AWT Frame
对象并使其在getDrawable(panel)
调用之前可见时,它起作用了,并且我能够获得表面上的锁。