Java 可拖动工具栏

Java 可拖动工具栏,java,swt,draggable,jface,Java,Swt,Draggable,Jface,如何像Eclipse那样使用JFace/SWT制作可拖动/固定工具栏?你可以发布一个简单的ApplicationWindow示例,或者链接一个如何制作它的好资源 谢谢。SWT有一个名为CoolBar的组件,您可以使用 ,或者您可以手动使用它们()以防有人发现这个问题,我准备了一个小示例。我的问题是不正确地使用了add方法。您必须使用来自CoolBarManager的add(IToolBarManager工具栏管理器)方法,而不是来自基类ContributionManager的方法 import

如何像Eclipse那样使用JFace/SWT制作可拖动/固定工具栏?你可以发布一个简单的ApplicationWindow示例,或者链接一个如何制作它的好资源


谢谢。

SWT有一个名为CoolBar的组件,您可以使用
,或者您可以手动使用它们()

以防有人发现这个问题,我准备了一个小示例。我的问题是不正确地使用了
add
方法。您必须使用来自
CoolBarManager
add(IToolBarManager工具栏管理器)
方法,而不是来自基类
ContributionManager
的方法

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.CoolBarManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class App extends ApplicationWindow {

  public App(Shell parent) {
    super(parent);
  }

  @Override
  protected Control createContents(Composite parent) {
    getShell().setText("CoolBarManager example");

    return super.createContents(parent);
  }

  @Override
  public void create() {
    addCoolBar(SWT.FLAT);
    super.create();
  }

  @Override
  protected CoolBarManager createCoolBarManager(int style) {
    CoolBarManager cbm = new CoolBarManager(style);

    IToolBarManager tb1 = new ToolBarManager(style);
    IToolBarManager tb2 = new ToolBarManager(style);

    tb1.add(new Action() {
      {
        setText("&Button1");
      }
    });
    tb1.add(new Action() {
      {
        setText("&Button2");
      }
    });
    tb1.add(new Action() {
      {
        setText("&Button3");
      }
    });

    tb2.add(new Action() {
      {
        setText("&Button4");
      }
    });

    tb2.add(new Action() {
      {
        setText("&Button5");
      }
    });

    cbm.add(tb1);
    cbm.add(tb2);

    return cbm;
  }

  public static void main(String[] args) {
    App app = new App(null);

    app.setBlockOnOpen(true);
    app.open();

    Display.getCurrent().dispose();
  }
}

您好,谢谢您推荐
CoolBar
/
CoolBarManager
,但我无法得到这份工作。你能用
CoolBar
发布一个简单的
ApplicationWindow
示例,或者链接一个如何使用它的好示例吗?