在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中文網其他相關文章!