【问题标题】:Is there a way to find which region BorderLayout has docked a user draggable JToolBar有没有办法找到哪个区域 BorderLayout 停靠了用户可拖动的 JToolBar
【发布时间】:2014-11-23 15:07:17
【问题描述】:

我将用户可拖动的JToolBars 添加到JPanel 的NORTH、EAST 和WEST 区域以及BorderLayout。当应用退出时,我想保存用户将JToolBars 停靠到的区域,以便在下次应用启动时尊重此偏好。

我检查了属性更改侦听器方法,并尝试在JPanel 上获取BorderLayout 的实例并询问每个添加的组件具有的约束,但我无法找到正确的信息。我也搜索了源代码,大多数用户拖动似乎都被委派给了 UI,并且在我通读所有内容时都在努力保持上下文。

请任何 Swing 爱好者知道这里的答案吗?

【问题讨论】:

    标签: java swing border-layout jtoolbar


    【解决方案1】:

    你不能只用ContainerListener

    public void componentAdded(ContainerEvent e);
    

    让您的容器获得停靠事件?

    【讨论】:

    • 似乎有效。用System.out.println(((BorderLayout)e.getContainer().getLayout()).getConstraints(toolBar)); 测试:-D
    • 我也是,谢谢两者:在 ContainerListener.componentAdded 方法中,通过使用 BorderLayout.getConstraints(e.getChild()) 方法,它返回区域,即北部、西部等。
    • @Hamish258 java-sl.com/tip_multiple_floatable_toolbars.html 这也很有用。你可以在 LayoutManager 级别上做同样的事情
    • @StanislavL 顺便说一句,prefferedLayoutSize 方法中的拼写错误,也许意味着preferredLayoutSize?谢谢
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2014-07-20
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多