首頁  >  文章  >  Java  >  如何將資料從一個 JFrame 中的 JTable 傳遞到另一個 JFrame 中的文字欄位?

如何將資料從一個 JFrame 中的 JTable 傳遞到另一個 JFrame 中的文字欄位?

Barbara Streisand
Barbara Streisand原創
2024-10-26 19:00:30400瀏覽

How do you pass data from a JTable in one JFrame to text fields in another JFrame?

在JFrame 之間傳遞資料

在此場景中,您有兩個JFrame:frame1,其中包含文字字段,frame2,其中包含文字欄位搜尋框和包含搜尋結果的JTable。您的目標是在frame1的文字欄位中反映JTable中選定的值。

物件參考與通訊

您的問題提到將frame1的物件作為參數傳遞,但了解在GUI 物件之間傳遞引用遵循與在非GUI Java程式碼中傳遞引用相同的原則至關重要。對第二個 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>

在此範例中,當按一下frame1中的按鈕,開啟JDialogframe2。對frame2 的引用由frame1 保存,允許後者存取和操作frame2 內JTextField 中的文字。

同樣,您可以在特定場景中使用基於偵聽器的技術從JTable 檢索資料來決定何時在表中選擇所需的行。

以上是如何將資料從一個 JFrame 中的 JTable 傳遞到另一個 JFrame 中的文字欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn