Java 有没有办法更改JDialog的所有者?

Java 有没有办法更改JDialog的所有者?,java,swing,jdialog,Java,Swing,Jdialog,我有一个非常具体的问题,我想知道是否有办法更改JDialog的所有者(可以使用构造函数设置)。我想没有“官方”的可能性(黑客除外),但我想确保我没有错过什么。关于这个主题的任何想法或提示都会很有帮助,谢谢了…我能想到的唯一一件事就是不安全的黑客攻击(使用反射并改变所有者,但在不同版本的JVM下可能会发生变化(甚至是来自同一平台上的同一个vensor)) 也许你可以问一个更好的问题:“这就是我要做的……我真的需要改变对话框的所有者吗?还是有更好的方法?”?我正在努力想原因想改变业主,我不能想出任何

我有一个非常具体的问题,我想知道是否有办法更改JDialog的所有者(可以使用构造函数设置)。我想没有“官方”的可能性(黑客除外),但我想确保我没有错过什么。关于这个主题的任何想法或提示都会很有帮助,谢谢了…

我能想到的唯一一件事就是不安全的黑客攻击(使用反射并改变所有者,但在不同版本的JVM下可能会发生变化(甚至是来自同一平台上的同一个vensor))


也许你可以问一个更好的问题:“这就是我要做的……我真的需要改变对话框的所有者吗?还是有更好的方法?”?我正在努力想原因想改变业主,我不能想出任何

如果您的问题是关于如何在应用程序生命周期中重用对话框,那么更好的方法是:

  • 将所有对话框内容定义为JPanel子类
  • 并使用现有的JPanel子类实例实例化一个新的JDialog
  • 对于第2点,您当然可以使用面板的惰性评估(仅在第一次使用时实例化,然后重用)

    您还需要让您的面板实现一些接口(您自己的),允许您重新初始化它们,以便在新的JDialog中重用(reinit通常意味着删除所有字段内容,或将这些字段设置回默认值)。

    j:


    在我的应用程序中,我同样需要一个“全局”对话框,以便在表格单元格中的文本太长而无法显示时提供“注释”对话框。在这种情况下,用户可以将鼠标悬停或右键单击单元格,并获得一个显示整个文本的对话框。但是,我希望对话框能够快速显示,尤其是在悬停时,所以我只想显示和隐藏它。我决定以应用程序框架为所有者,在主类中创建并存储此对话框。然后,每当任何所有者是框架的视图需要notes对话框时,该视图都可以从主类获得它。在对话框需要“注释”对话框的情况下,父对话框可以创建具有相应所有者的“注释”对话框的新实例。由于这些父对话框(至少在我的应用程序中)在关闭时被释放,额外的notes对话框实例将超出范围并被垃圾收集。希望能有帮助。

    你到底为什么要这么做?