首页 >Java >java教程 >如何将数据从一个 JFrame 中的 JTable 传递到另一个 JFrame 中的文本字段?

如何将数据从一个 JFrame 中的 JTable 传递到另一个 JFrame 中的文本字段?

Barbara Streisand
Barbara Streisand原创
2024-10-26 19:00:30491浏览

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