JFrame 間でのデータの受け渡し
このシナリオでは、2 つの JFrame があります。frame1 にはテキスト フィールドが含まれ、frame2 にはテキスト フィールドが含まれます。検索ボックスと、検索結果を含む JTable。あなたの目標は、JTable から選択した値を Frame1 のテキスト フィールドに反映することです。
オブジェクト参照と通信
あなたの質問は、frame1 のオブジェクトをパラメータとして渡すことについて言及しています。ただし、GUI オブジェクト間での参照の受け渡しは、非 GUI Java コードでの参照の受け渡しと同じ原則に従っていることを理解することが重要です。 2 番目の JFrame (frame2) への参照は通常、最初の JFrame (frame1) 内でアクセスできるため、そのメソッドを直接呼び出すことができます。
クロスウィンドウ ステート アクセス
あるウィンドウの状態に別のウィンドウからアクセスするタイミングは、ウィンドウの関係に依存します。モーダル ダイアログの場合、最初のウィンドウはダイアログが戻った直後にデータを取得できます。これは、ダイアログを表示できるように設定した後に実行されるコードです。
非モーダル ダイアログの場合、リスナーに依存して、いつデータを抽出するかを決定することがよくあります。
例: Windows 間でのテキストの受け渡し
この概念を説明するために、次の例を考えてみましょう。
<code class="java">import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class WindowCommunication { public static void main(String[] args) { JFrame frame1 = new JFrame("Frame 1"); frame1.getContentPane().add(new JLabel("Text: ")); frame1.getContentPane().add(new JTextField(10)); JButton button = new JButton("Open Frame 2"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialog frame2 = new JDialog(frame1, "Frame 2"); frame2.getContentPane().add(new JTextField(10)); frame2.pack(); frame2.setVisible(true); } }); frame1.getContentPane().add(button); frame1.pack(); frame1.setLocationRelativeTo(null); frame1.setVisible(true); } }</code>
この例では、フレーム 1 のボタンをクリックすると、JDialog フレーム 2 が開きます。 Frame2 への参照は Frame1 によって保持され、後者は Frame2 内の JTextField 内のテキストにアクセスして操作できるようになります。
同様に、リスナーベースの手法を使用して、特定のシナリオで JTable からデータを取得できます。テーブル内で目的の行がいつ選択されるかを決定します。
以上がある JFrame の JTable から別の JFrame のテキスト フィールドにデータを渡すにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。