假设我有一个名为 childJframe
的 JFrame
。
如果我从两个不同的 JFrame
创建一个新的 childJFrame。如何获取哪个特定 JFrame 创建了 childJFrame。
因此:
public class myPage1 extends javax.swing.JFrame{
// on a Button clicked
childJFrame cjf = new childJFrame();
cjf.setVisible(true);
}
第二类是
public class myPage2 extends javax.swing.JFrame{
// on a Button clicked
childJFrame cjf = new childJFrame();
cjf.setVisible(true);
}
如何确定 cjf
是否是 myPage1
或 myPage2
的实例?
最佳答案
JFrame 派生的 Window 类有一个 getOwner()
方法,该方法将返回任何子窗口的“所有者”Window。
但是话虽如此,子窗口应该是 JDialogs,而不是 JFrames,因为您的应用程序应该有且只有一个 JFrame,而且我相信 JFrames 没有所有者,因此此方法可以返回空值。如果需要更改 JFrame 内的“ View ”,请使用 CardLayout,如果需要显示子窗口,请使用对话框窗口,例如 JDialogs 和 JOptionPanes。请阅读:The Use of Multiple JFrames, Good/Bad Practice? ,了解更多相关信息。
话虽如此,我确实想知道您的问题是否实际上可能是 XY Problem当真正的解决方案是完全使用不同的(阅读更多“面向对象”)方法时,您会问“如何修复此代码”。
关于java - 获取哪个Jframe打开了另一个Jframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943783/