3

JDialogに関するアドバイスが必要です。

「入力」データをキャッチする必要がありますが、それを行うための最良の方法は何でしょうか。さて、ここに完全な問題があります。ユーザーがボタン(JFrameにあります)をクリックすると、JDialogがポップアップ表示され、エントリ用の3つのテキストフィールドと1つのコンボボックスがあります。ユーザーが[OK]を押した後、それらのデータをJFrameに返す必要があります。まあ、私は途中でこれを行うことができますが、それはスパゲッティコードが多すぎます:))どのリスナーを使用する必要がありますか?そして、あなたが私にコード例を与えてくれるなら、私は感謝するでしょう:)

4

1 に答える 1

1

うーん、それを解決する方法はたくさんあります。おそらく、次のようなインターフェースを使用してデリゲートアプローチを試すことができます。

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();
}
于 2012-04-27T17:27:56.637 に答える