【问题标题】:Is there any way to add a Parent to a JComponent apart from super(parent)除了 super(parent) 之外,还有什么方法可以将 Parent 添加到 JComponent
【发布时间】:2015-12-01 08:36:34
【问题描述】:

我们通过调用超类构造函数将父级添加到 JDialog,即 超级(父)。

现在我想知道有什么方法可以在创建组件后添加父组件。

我知道的逻辑:

public MyJDialog(JFrame frame){

super(frame);

}

我想要的是

public JDialog(){

super();

}

void setParent(JFrame frame)
    {
    this.setParent(frame);//just an example, I am looking for an actual API
}

【问题讨论】:

  • 您指的是哪个 JComponent?并非所有扩展 JComponent 的类都有 super(parent)。
  • @Leet-Falcon : 我编辑了 qsn
  • 大多数时候情况正好相反。通过调用父级的 add(child) 来设置父级。所以双方都知道他们的关系。你能解释一下你打算这样做吗?
  • @Jan:是的,我知道。但我正在寻找父母的任何动态分配
  • @HimJEL 更改 Dialog 的父级几乎是无意义的。对话框旨在用于与应用程序某些部分中发生的事情进行交互,这就是它们附加到某个父级的原因。有一个例外,因为您可以根本不声明任何父级,这基本上意味着您的 Dialog 已被所有应用程序使用。

标签: java swing jframe jcomponent


【解决方案1】:

对于JDialog,您只能在使用构造函数时设置所有者。
如果您将 null 作为所有者传递给构造函数 - 则会为您分配一个。
之后,您将无法更改或重新设置所有者。

【讨论】:

    【解决方案2】:

    似乎没有办法设置它。 以下 qsn 描述了替代方法: Is there a way to change the owner of a JDialog?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-13
      • 2014-02-11
      • 1970-01-01
      • 2018-11-30
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      相关资源
      最近更新 更多