从JPanel隐藏JInternalFrame

时间:2016-11-24 12:03:00

标签: java swing jpanel jinternalframe

我正在构建一个JPanel,它被赋予一个JInternalFrame。现在我希望如果有人点击JInternalFrame的X按钮,它就会被隐藏,而不是关闭。问题是我必须在JPanel中实现这个功能,而且我无法访问JInternalFrame。

这可能吗?

我从JInternalFrame知道它可以用setDefaultCloseOperation(HIDE_ON_CLOSE);实现,但我不知道如何从JPanel中做到这一点。当然我搜索了SO,但我找不到任何适合我的情况。

另一个问题,只是为了理解:点击X按钮时发生了什么? dispose()函数是否被调用?我是Java Swing的新手,对它的工作原理感兴趣。

1 个答案:

答案 0 :(得分:2)

  

但我不知道如何从JPanel

中做到这一点

您可以使用SwingUtilities类来查找父容器。

类似的东西:

JInternalFrame frame = (JInternalFrame)SwingUtilities.ancestorOfClass(JInternalFrame.class, thePanel);