うーん、それを解決する方法はたくさんあります。おそらく、次のようなインターフェースを使用してデリゲートアプローチを試すことができます。
public interface DialogListener {
public boolean okClicked(String input1, String input2, String input3, String combo);
public void cancelClicked();
}
(ブール値は、ダイアログを閉じるかどうかを決定した場合です)。
MVCアプローチを使用している場合は、フレームまたはフレームコントローラーに実装し、そのコンポーネントをカスタムダイアログのリスナーとして追加します。
別のアプローチは、ダイアログにプロパティを設定してから、フレームまたはコントローラーがダイアログに入力値を照会することです。
これは、物事をどれだけ一般的にしたいかによって異なります。
また、このようなものを使用することもできます。これは、より一般的で再利用可能ですが、あまり便利ではありません。
public interface DialogListener {
public boolean okClicked(JDialog dialog, Map<String, JComponent> components);
public void cancelClicked();
}