Перенос jtoolbar из одной jpanel в другую - PullRequest
2 голосов
/ 25 ноября 2011

Это мой первый вопрос, так что терпите меня. Допустим, у меня есть 2 JPanel и 1 JToolBar. Я хочу перетащить панель инструментов с одной панели на другую, и после отпускания мыши панель инструментов должна придерживаться второй.

1 Ответ

3 голосов
/ 25 ноября 2011

BasicToolbarUI имеет метод floatAt. Как вы можете видеть из источника (ниже), панель инструментов использует источник документации, который является родительским контейнером панели инструментов. Вы можете попробовать переопределить метод и заменить источник.

   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);
        }
...