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

标签 java swing jpanel jtoolbar

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

最佳答案

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

关于java - 将 jtoolbar 从一个 jpanel 转移到另一个 jpanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266332/

相关文章:

java - 如何为 .equals() 设置可接受的数值;命令?

java - 如何在 Java Swing GUI 中显示 JFreeChart?

java - 使用方法在 Jpanel 内添加 JButton 时,如何保持最后添加的按钮在 View 中?

java - 在不引用 JPanel 本身的情况下处理多个 UI JPanel 中的 Swing 操作

java - 从泛型类型创建类或父类(super class)的实例

java - 如何在iReports中向reportElement标签添加新属性?

java - 如果窗口不在顶部,则听击键

java - 如何重命名jtree中的节点

java - 使用 MouseMotionListener 时出现问题

java - 不同语言(即 Java 和 C++)的 "random"生成器如何比较?