Java SWT/AWT桥接问题?

Java SWT/AWT桥接问题?,java,swing,Java,Swing,下午, 我正在开发一个EclipseRCP插件。我想在其中嵌入一个Swing组件。目前,我正在使用SWT AWT桥,如下所示: Applet applet = new myApplet(); Composite swtAwtComponent = new Composite(parent, SWT.EMBEDDED); java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent ); applet.init(); frame.add(app

下午,

我正在开发一个EclipseRCP插件。我想在其中嵌入一个Swing组件。目前,我正在使用SWT AWT桥,如下所示:

Applet applet = new myApplet();
Composite swtAwtComponent = new Composite(parent, SWT.EMBEDDED);
java.awt.Frame frame = SWT_AWT.new_Frame( swtAwtComponent );
applet.init();
frame.add(applet);
这个方法有什么重要的问题,还是有更好的方法?这将如何影响应用程序中的线程/并发性


谢谢

SWT\u AWT桥确实存在一些问题:

  • 当然,最重要的是线程问题。这里的问题是,当同时使用SWT和AWT时,实际上使用的是两个GUI线程。它们之间的适当同步是绝对必要的,否则通常会导致死锁。在大多数情况下,您可以通过使用EventQueue#invokeLater或Display#asyncExec来避免这种情况

  • 第二个主要问题是形式问题。SWT有自己的模态堆栈,AWT有自己的模态堆栈。你可能也需要解决这些问题。对于这一点,已有已知的解决方案

  • 您可能会看到这里和那里的外观和感觉不一致,可能需要根据具体情况进行修复

  • 还有其他一些小问题,比如有时鼠标滚轮在某些平台上不起作用 在使用SWT_AWT做大事之前,请确保阅读并理解