引言
我使用的是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));无论是通过运行VideoViewport()还是通过getDisplay(),都没有对panel做太多的工作,我不知道哪些细节会相关。
问题
什么样的事情会导致获取表面上的锁失败?
发布于 2020-07-02 23:04:30
必须将组件添加到框架中并使其可见。
当我将该组件添加到AWT Frame对象并在getDrawable(panel)调用之前使其可见时,它可以工作,并且我能够获得表面上的锁。
https://stackoverflow.com/questions/62682203
复制相似问题