Java 向EclipseRCP插件添加Swing组件

Java 向EclipseRCP插件添加Swing组件,java,swing,eclipse-plugin,swt,Java,Swing,Eclipse Plugin,Swt,我在SWT中嵌入Swing组件时遇到问题(例如eclipse插件..) 目前我拥有: public void createPartControl(Composite parent) { java.awt.Frame f = SWT_AWT.new_Frame(parent); JPanel panel = new JPanel(new BorderLayout()); JButton button = new JButton("Swing button"); JLabel la

我在SWT中嵌入Swing组件时遇到问题(例如eclipse插件..) 目前我拥有:

 public void createPartControl(Composite parent) {
  java.awt.Frame f = SWT_AWT.new_Frame(parent);
  JPanel panel = new JPanel(new BorderLayout());
  JButton button = new JButton("Swing button");
  JLabel label = new JLabel("Swing label");
  panel.add(label,BorderLayout.NORTH);
  panel.add(button,BorderLayout.CENTER);
  f.add(panel);
 }
此代码段加载失败,插件在第一行崩溃

你知道如何整合这些组件吗

谢谢

至少,在SWT组合中嵌入AWT框架只需两行简单的代码

Composite composite = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
Frame frame = SWT_AWT.new_Frame(composite);

由于您的代码在第一行失败,请首先确保使用
SWT.EMBEDDED
创建父级
Composite
。如果不是,则使用
SWT.EMBEDDED
创建子组合,然后调用

java.awt.Frame f = SWT_AWT.new_Frame(newChildComposite);
实例 创建org.eclipse.swt.Composite 使用SWT.EMBEDDED样式。这 样式表示AWT帧将被删除 嵌入复合材料中。这个 调用静态new_Frame方法 创建并返回这样的帧。这个 然后可以用AWT填充帧 和/或回转组件

取自