所以,我需要创建一个扩展JDialog
的类,从主函数代码中删除JDialog
代码。
但是,在创建JFrame
后,我不知道如何设置它的父JDialog
。
通常通过将JFrame
传递给构造函数来完成,但由于它是自定义类,因此我不知道如何将其设置为JDialog
的父级。我找不到任何类型JDialog.setParent(JFrame);
的方法我希望你能理解这个问题。
有什么建议吗?
答案 0 :(得分:4)
您可以在JDialog的构造函数或setter方法中设置父级。然后,当您创建对话框时,您将在那时知道父对象并将其传递给参数。然后,您可以将参数传递给超级构造函数。
顺便说一下,我很少需要扩展JDialog,JFrame或任何顶级窗口,而是更喜欢“开箱即用”并在需要时制作它们。
答案 1 :(得分:2)
父Window
(Frame
或Dialog
)在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
后,您无法在以后设置它。