我正在构建一个JPanel,它被赋予一个JInternalFrame。现在我希望如果有人点击JInternalFrame的X
按钮,它就会被隐藏,而不是关闭。问题是我必须在JPanel中实现这个功能,而且我无法访问JInternalFrame。
这可能吗?
我从JInternalFrame知道它可以用setDefaultCloseOperation(HIDE_ON_CLOSE);
实现,但我不知道如何从JPanel中做到这一点。当然我搜索了SO,但我找不到任何适合我的情况。
另一个问题,只是为了理解:点击X
按钮时发生了什么? dispose()
函数是否被调用?我是Java Swing的新手,对它的工作原理感兴趣。
答案 0 :(得分:2)
但我不知道如何从JPanel
中做到这一点
您可以使用SwingUtilities
类来查找父容器。
类似的东西:
JInternalFrame frame = (JInternalFrame)SwingUtilities.ancestorOfClass(JInternalFrame.class, thePanel);