将jtoolbar从一个jpanel转移到另一个jpanel

时间:2011-11-25 08:21:56

标签: java swing jpanel jtoolbar

这是我的第一个问题,请耐心等待。假设我有2个JPanel和1个JToolBar。我想要做的是将工具栏从一个面板拖到另一个面板,在鼠标释放后,工具栏应该粘在第二个面板上。

1 个答案:

答案 0 :(得分:3)

BasicToolbarUI有floatAt方法。正如您从源(下面)工具栏中看到的那样,工具栏使用docing source作为工具栏的父容器。您可以尝试覆盖该方法并替换源。

   protected void floatAt(Point position, Point origin)
    {
    if(toolBar.isFloatable() == true)
    {
      try
      {
        Point offset = dragWindow.getOffset();
        if (offset == null) {
        offset = position;
        dragWindow.setOffset(offset);
        }
        Point global = new Point(origin.x+ position.x,
                     origin.y+position.y);
        setFloatingLocation(global.x-offset.x, 
                global.y-offset.y);
        if (dockingSource != null) { 
        Point dockingPosition = dockingSource.getLocationOnScreen();
        Point comparisonPoint = new Point(global.x-dockingPosition.x,
                          global.y-dockingPosition.y);
        if (canDock(dockingSource, comparisonPoint)) {
            setFloating(false, comparisonPoint);
        } else {
            setFloating(true, null);
        }
        } else {
        setFloating(true, null);
        }