在JFrame 之間傳遞值
挑戰
單擊JTable 中的一行時JTable 中的一行時第二個JFrame,目標是讓選取的值填入原始JFrame 中的文字欄位。
分析
雖然程式架構可能建議使用 JDialog 而不是一個 JFrame,兩者都依賴於與標準 Java 程式碼一樣傳遞 GUI 物件引用的相同原理。
在 JFrame 視窗開啟其他 JFrame 的情況下,第一個框架通常會保存對第二個框架的引用,從而允許它呼叫它的方法。這些呼叫的時間取決於第二幀是否為模態對話框。
解決方案
對於模態對話框,檢索狀態的理想時間是緊接著對話框返回。對於非模態對話框,可以使用偵聽器來監視何時應擷取資訊。
範例程式碼
為了用一個簡單的範例來說明這個概念,請考慮以下程式碼:
<code class="java">// MyFramePanel holds a reference to MyDialogPanel and its JDialog class MyFramePanel extends JPanel { // ... // When the "Open Dialog" button is clicked, the dialog is opened private void openTableAction() { if (dialog == null) { dialog = new JDialog(win, "My Dialog", ModalityType.APPLICATION_MODAL); dialog.getContentPane().add(dialogPanel); dialog.pack(); dialog.setLocationRelativeTo(null); } dialog.setVisible(true); // Modal dialog takes over // After the dialog is disposed, retrieve the text from its JTextField field.setText(dialogPanel.getFieldText()); } }</code>
此範例示範如何透過引用對話方塊面板將對話方塊中的文字欄位資料傳輸到主框架中的文字欄位。類似的技術可以應用於從 JTable 檢索資料。
以上是如何將值從第二個 JFrame 中的 JTable 傳遞到原始 JFrame 中的文字欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!