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