そのため、メイン関数のコードからコードJDialog
を削除するために、を拡張するクラスを作成する必要があります。JDialog
JFrame
ただし、作成後に親を設定する方法がわかりませんJDialog
。
通常はコンストラクタに を渡して行うのですが、カスタムクラスなので親JFrame
にする方法がわかりません。JDialog
タイプのメソッドが見つかりませんでしJDialog.setParent(JFrame);
た。問題を理解していただければ幸いです。
助言がありますか?
そのため、メイン関数のコードからコードJDialog
を削除するために、を拡張するクラスを作成する必要があります。JDialog
JFrame
ただし、作成後に親を設定する方法がわかりませんJDialog
。
通常はコンストラクタに を渡して行うのですが、カスタムクラスなので親JFrame
にする方法がわかりません。JDialog
タイプのメソッドが見つかりませんでしJDialog.setParent(JFrame);
た。問題を理解していただければ幸いです。
助言がありますか?
親は、JDialog のコンストラクターまたはセッター メソッドで設定できます。次に、ダイアログを作成すると、それまでに親がわかり、それをパラメーターに渡すことができます。その後、パラメーターをスーパー コンストラクターに渡すことができます。
余談ですが、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
カスタムが作成された後は、後で設定することはできません。