0

私はアプリケーション(人生ゲームの実装)を作成していて、次のように機能させたいと考えています。

  1. JFrame(JDialogではありません!)がポップアップし、ユーザーはいくつかの設定を選択できます。
  2. このフレームの「スタート」ボタンを押すと、設定がどこかに保存されて閉じられ、人生ゲームのフレームが開きます。

これを達成するための最良の方法は何ですか?

私の現在のアプローチは、設定を保存し、2つのJFrameの表示/非表示を処理することになっているmainメソッドを含む別のクラスからアプリケーションを制御することですが、いくつかの問題が発生します。 "-設定フレームのボタンをクリックして、選択した設定を保存する時間であることをメインメソッドに通知し、このフレームを非表示にして、GoLフレームを表示します。ただし、「設定」フレーム内からそのクラスのスコープにアクセスできないため、この情報をmainメソッドに伝達する方法がわかりません。私はメインメソッドから「設定」フレームにアクセスできるので、設定を取得してフレームを閉じることは問題ではありません。問題は、いつそれを行うかを知ることです。

//In the class "SettingsFrame"
startButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //WHAT TO DO HERE?
    }
});

私はやや初心者なので、私の試みたアプローチには根本的に何か問題があるのか​​もしれません。JDialogを使用せずに上記の機能を実現するための最もエレガントな方法は何ですか?

(SOを調べて、この回答を見つけました。JFrame間で値を渡します。ただし、添付の例ではJDialogを使用しています。これは、呼び出し元のメソッドに「OK」ボタンが押されたことを自動的に通知すると思います。興味があります。これを自分で達成する方法)。

4

1 に答える 1

2

mainメソッドから設定フレームへのコールバックを登録する必要があります。スタートボタンが押されると、アクションリスナーはウィンドウを閉じ、コールバックを呼び出して、設定フレームに入力された設定を渡します。コールバックメソッドは、人生ゲームのフレームを開きます。

于 2012-11-04T12:22:18.380 に答える