2

そのため、メイン関数のコードからコードJDialogを削除するために、を拡張するクラスを作成する必要があります。JDialog

JFrameただし、作成後に親を設定する方法がわかりませんJDialog

通常はコンストラクタに を渡して行うのですが、カスタムクラスなので親JFrameにする方法がわかりません。JDialogタイプのメソッドが見つかりませんでしJDialog.setParent(JFrame);た。問題を理解していただければ幸いです。

助言がありますか?

4

2 に答える 2

4

親は、JDialog のコンストラクターまたはセッター メソッドで設定できます。次に、ダイアログを作成すると、それまでに親がわかり、それをパラメーターに渡すことができます。その後、パラメーターをスーパー コンストラクターに渡すことができます。

余談ですが、JDialog、JFrame、またはトップレベルのウィンドウを拡張する必要があったことはめったにありませんが、代わりに「すぐに」使用して、必要に応じて作成することを好みます。

于 2012-08-31T11:57:46.600 に答える
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カスタムが作成された後は、後で設定することはできません。

于 2012-08-31T12:02:04.053 に答える