2014-09-29 21 views
4

我有用户可拖动JToolBars添加到JPanel的北部,东部和西部地区与BorderLayout。当应用程序退出时,我想要保存用户已停靠JToolBars的区域,以便在下次应用程序启动时尊重此偏好。有没有办法找到哪个区域BorderLayout已停靠用户拖动JToolBar

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

任何挥杆爱好者都知道这里的答案吗?

回答

4

你就不能使用ContainerListener

public void componentAdded(ContainerEvent e); 

您的容器,以获得对接活动?

+1

似乎工作。用System.out.println(((BorderLayout)e.getContainer()。getLayout())。getConstraints(toolBar));':-D – 2014-09-29 09:34:30

+0

我也是,谢谢两位:在ContainerListener.componentAdded方法中,通过使用BorderLayout.getConstraints(e.getChild())方法返回区域,即北,西等。 – Hamish258 2014-09-29 09:40:28

+1

@ Hamish258 http://java-sl.com/tip_multiple_floatable_toolbars.html这也可能是有用的。您可以在LayoutManager级别上执行相同的操作 – StanislavL 2014-09-29 10:56:47

相关问题