java - 获取哪个Jframe打开了另一个Jframe

标签 java swing user-interface jframe

假设我有一个名为 childJframeJFrame

如果我从两个不同的 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 是否是 myPage1myPage2 的实例?

最佳答案

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/

相关文章:

java - 在 Morphia 中,我如何更新 ArrayList 中的一个嵌入对象

java - Spring Boot应用程序启动时没有正确的应用程序名称

java - 在 Java Swing 中扩展 JLabel 以使用给定字体(扩展类中的 super 用法)

java - 无法将字符 ',' 替换为 '.'

Java:Swing 的困难

java - jubula 和访问后端数据库

java - 如何在 servlet 中调用带参数的 URL 并获取响应?

java - 如何在运行时使 JPanel 保持在父容器的顶部?

JavaFX ComboBox 显示项目字体大小

macos - 适用于 Mac 的 UI 素描软件