Java找到JFrame属于JPanel的内容

时间:2014-07-28 20:43:01

标签: java swing jframe

我有一个多个JPanels被放入对话中,经过几个小时后,我仍然无法找到存储JPanels的帧。我想知道是否有将返回JFrame的方法(最终目标是在setDefaultCloseOperation()上调用JFrame)。我在想getParent()会这样做但是无论我经历多少层父母,我仍然无法打电话给setDefaultCloseOperation

2 个答案:

答案 0 :(得分:4)

有一种实用方法: SwingUtilities.getWindowAncestor()

如果您将JPanel添加到JFrame,则显然是JFrame个实例:

JFrame f = (JFrame) SwingUtilities.getWindowAncestor(panel);

注意:getWindowAncestor()windowForComponent()提供相同的功能。

答案 1 :(得分:4)

Window window = SwingUtilities.windowForComponent(...);