2014-09-29 23 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

相關問題