JDialog模态和类扩展

时间:2012-08-31 11:55:22

标签: java swing jframe modal-dialog jdialog

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

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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后,您无法在以后设置它。