将Swing组件添加到Eclipse RCP插件

3

我在将Swing组件嵌入SWT中(例如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);
 }

这段代码片段无法加载,插件在第一行崩溃......

您有什么想法可以将这些组件整合起来吗?

谢谢!

2个回答

5

2

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

java.awt.Frame f = SWT_AWT.new_Frame(newChildComposite);

创建一个带有SWT.EMBEDDED样式的org.eclipse.swt.Composite实例。该样式表示在该Composite内嵌入了一个AWT框架。调用静态的new_Frame方法可以创建并返回这样的框架。然后可以向该框架添加AWT和/或Swing组件。
引自 Article-Swing-SWT-Integration

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接