2

所以,我需要创建一个扩展类,从主要功能代码JDialog中删除JDialog代码。

但是,我不知道在创建JFrame后如何设置它的父JDialog级。

它通常通过将 传递JFrame给构造函数来完成,但由于它是一个自定义类,我不知道如何将其设置JDialog为父级。我找不到任何类型的方法,JDialog.setParent(JFrame);希望您能理解问题。

有什么建议么?

4

2 回答 2

4

您可以在 JDialog 的构造函数或 setter 方法中设置父级。然后,当您创建对话框时,您将知道父级,并可以将其传递给参数。然后,您可以将参数传递给超级构造函数。

顺便说一句,我很少需要扩展 JDialog、JFrame 或任何顶级窗口,而是更喜欢“开箱即用”并在需要时制作它们。

于 2012-08-31T11:57:46.600 回答
2

父级WindowFrameDialog)在 API 中称为所有者。您只能通过调用超类(JDialog)构造函数在构造函数中提及它。

例子:

public class SomeDialog extends JDialog {

  public SomeDialog() {
    // see other JDialog constructors for other ways to call this
    super(parentWindow, title, ModalityType.DOCUMENT_MODAL);
    ...
  }

}

在您的自定义创建之后,您不能稍后再设置它JDialog

于 2012-08-31T12:02:04.053 回答