2

さて、ライブラリ管理プログラムを作成していて、ユーザーが新しい本に関する詳細を入力する特別なフレームを作成しました。ただし、新しい本を追加するための私のメソッドは別のクラス (メソッド) にあります。私の質問は、ユーザーがテキスト フィールドに入力した情報を取得するにはどうすればよいですか? ゲッターのようなものを使用する必要がありますか、それとももっと簡単な方法がありますか。また、netbeans で GUI レイアウト (モノ) を使用していること、および実際にフォームを作成済みであることも覚えておいてください。(眉をひそめられていることは承知していますが、時間に追われています。これが私たちが教えられた方法です。)ちなみに、これは学校のプロジェクトです。ありがとう。

Jframe新刊の画像

4

2 に答える 2

3

さて、ライブラリ管理プログラムを作成していて、ユーザーが新しい本に関する詳細を入力する特別なフレームを作成しました。

通常、詳細ウィンドウはダイアログであり、おそらくモーダル ダイアログです。この情報は、JFrame ではなくモーダル JDialog に表示することをお勧めします。これを行うと、詳細ウィンドウから情報を簡単に抽出できるようになります。

ただし、新しい本を追加するための私のメソッドは別のクラス (メソッド) にあります。私の質問は、ユーザーがテキスト フィールドに入力した情報を取得するにはどうすればよいですか? ゲッターのようなものを使用する必要がありますか、それとももっと簡単な方法がありますか。

ここで疑問が生じます -- ゲッターを使用することの何がそんなに難しいのでしょうか? そして実際、彼はまさに私があなたが使用することを提案するものです! あなたの質問は本質的に、「あるクラスのオブジェクトの状態に関する情報を別のクラスのオブジェクト内から取得するにはどうすればよいですか」ということに注意してください。この場合、ゲッターメソッドはほぼ必須です。

また、netbeans で GUI レイアウト (モノ) を使用していること、および実際にフォームを作成済みであることも覚えておいてください。(眉をひそめられていることはわかっていますが、時間に追われています。これが私たちが教えられた方法です。)ちなみに、これは学校のプロジェクトです。

これは現在の問題とは無関係であり、「フォーム」を JFrame としてハードコーディングし、それを破棄して JPanel として再実行する場合を除いて、解決策にはほとんど影響を与えません。

私は提案します:

  • addEditBook モーダル JDialog を作成する
  • 外部クラスがテキストフィールドの内容を照会できるように、getter メソッドを提供します。
  • メインプログラムからダイアログを表示します。
  • モーダルであるため、メイン プログラムのコード フローは、ダイアログが処理されるまで一時停止します。
  • [OK] ボタンと [キャンセル] ボタンで、ダイアログの状態 (OK_STATE または CANCEL_STATE) を設定し、ダイアログを閉じます。実際にこれを行う最も簡単な方法は、JOptionPaneをモーダル ダイアログとして使用することです。addEditBook が、JOptionPane に表示する JPanel を作成するように調整されている場合、これは簡単に実現できます。
  • プログラム フローは、ダイアログを表示した直後からメイン プログラムで再開されます。
  • フィールドの内容についてダイアログを照会します。

上記のウィンドウに似た複数のフィールドから情報を要求するオプション ペインを含む、JOptionPane ソリューションの例については、以下を参照してください。



コメントであなたの状態を編集します:

ああ、私は、通常の JOptionpane 入力ダイアログのフィールドに、既に保存されている情報を表示する編集用のように、既に単語を表示させるにはどうすればよいでしょうか?

上記の回答例を参照してください。これらは「通常の JOptionPane」の例ではなく、作成した GUI を表示する JOptionPanes の例であることがわかります。この GUI が表示された後に状態を簡単に照会できるのと同じように、表示される前にsetterメソッドを使用して GUI の状態を設定するのも簡単です。

于 2013-07-13T12:52:39.087 に答える
3

私の質問は、ユーザーがテキスト フィールドに入力した情報を取得するにはどうすればよいですか? ゲッターのようなものを使用する必要がありますか、それとももっと簡単な方法がありますか

ボタンにactionListenersを追加する必要があります。つまり、 actionPerformedというメソッドをオーバーライドします。基本的に、actionListeners を「OK」および「キャンセル」ボタンに関連付ける必要があります。「OK」ボタンが押されると、関連付けられたactionPerformedメソッドでコールバックを取得する必要があります。次に、getText メソッドを使用して textfiled の値を取得してみてください。すべてのフィールドを収集し、そのデータを格納するために作成した Bean を設定します。次に、ビジネス ロジックを呼び出して書籍情報を保存/変更できます。

于 2013-07-13T12:52:43.297 に答える