2016-05-11 98 views
0

如何在Java进程中创建java.awt.Canvas对象,并将其传递给另一个(子进程)进程,并让其他进程在其上放置轻量(swing)组件。子进程应该处理放置在画布上的组件的事件。当然,事件调度线程应该按预期运行。在进程之间共享Java画布

+0

进程或线程之间的份额? –

+0

进程。线程,我可以处理:) – b10y

回答

0

不可能在两个进程之间共享Canvas,因为Canvas是一个对象实例,您可以共享有关该对象的信息,而不是对象实例。

例如,您最终可以在两个进程上复制画布,但更改一个进程上的值不会反映到第二个进程上,因为内存在进程之间被隔离。


什么是可以做的是创建在画布上进行操作,从一个进程,可以使用一个Socket作为通信系统之外的接受指令的类。所以在这种情况下,您有一个Canvas“导演”以及许多可以与之互动的流程。

+0

我正在考虑一些本地方法,可能与JNA。 – b10y

+0

技术上应该可以在进程之间共享内存(至少在linux中),但真正复杂(不确定如果可能)访问与JVM相关的信息。更好的解决方案应该是使用单点访问来修改画布,以使用套接字机制从外部公开要调用的方法 –