在 JFrame 之间传递值
挑战
单击 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中文网其他相关文章!