将 Java SWT/AWT 桥嵌入到 winform 窗体中

Embedding Java SWT/AWT bridge into winform form

我创建了一个带有按钮的 winform 窗体,当我单击该按钮时,我调用了一个 Java AWT (.jar) 进程。之后,我使用 SetParent(...) 将此过程嵌入到面板中。代码:

var procStartInfo = new ProcessStartInfo();
procStartInfo.WindowStyle = ProcessWindowStyle.Normal;
procStartInfo.FileName = "file.jar";
var process = Process.Start(procStartInfo);

var container = new FormContainer();
container.Show();

Panel p = new Panel();
container.Controls.Add(p);

SetParent(process.MainWindowHandle, p.Handle);

问题是当我嵌入 jar 时...文本框没有响应任何按键事件。我想这个问题与 Java Swing 应用程序有关。使用任何其他现代 Java 应用程序一切正常

知道我是否需要其他任何东西来解决这个问题

问题出在桥焦点处理程序上。在 java 1.8 版本中,焦点处理程序使用多线程代码,这似乎是 java 嵌入式应用程序中的问题。我们删除了异步代码,它工作正常