2016-05-11 2 views
0

Как создать объект java.awt.Canvas в процессе Java и передать его другому (дочернему) процессу, а другой - создать на нем легкие (качающиеся) компоненты. Детский процесс должен обрабатывать события компонентов, которые он помещает на холст. И, конечно, поток (ы) диспетчеризации событий должен функционировать должным образом.Поделитесь Java Canvas между процессами

+0

доля между процессами или потоками? –

+0

процессов. темы, я могу справиться :) – b10y

ответ

0

Невозможно разделить Canvas между двумя процессами, потому что Canvas является экземпляром объекта, и вы можете обмениваться информацией об объекте, а не экземпляре объекта.

Например, вы можете дублировать холст на двух процессах, но изменение значения для одного процесса не будет отражено во втором процессе, поскольку память изолирована между процессами.


Что можно сделать, это создать класс, которые работают на холсте от одного процесса и который может принимать инструкции снаружи, используя гнездо в качестве системы связи. Таким образом, в этом случае у вас есть один «режиссер» Canvas и многие процессы, которые могут взаимодействовать с ним.

+0

Я думал о некоторых родных подходах, возможно, с JNA. – b10y

+0

Технически должно быть возможно обмениваться памятью между процессами (по крайней мере, в Linux), но на самом деле сложно (не уверен, если возможно) получить доступ к информации, связанной с JVM. Лучшее решение должно состоять в том, чтобы использовать одноточечный доступ для изменения холста, который выставляет методы для вызова извне с помощью механизма сокета –

Смежные вопросы