>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이 있습니다. 검색 상자 및 검색 결과가 포함된 JTable. 귀하의 목표는 JTable에서 선택한 값을 프레임1의 텍스트 필드에 반영하는 것입니다.

객체 참조 및 통신

귀하의 질문에 프레임1의 객체를 매개변수로 전달하는 것이 언급되어 있습니다. 그러나 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>

이 예에서 프레임1의 버튼을 클릭하면 JDialog 프레임2가 열립니다. 프레임2에 대한 참조는 프레임1에 의해 유지되므로 후자가 프레임2 내의 JTextField에 있는 텍스트에 액세스하고 조작할 수 있습니다.

마찬가지로 리스너 기반 기술을 사용하여 특정 시나리오에서 JTable에서 데이터를 검색할 수 있습니다. 테이블에서 원하는 행이 선택되는 시점을 결정합니다.

위 내용은 한 JFrame의 JTable에서 다른 JFrame의 텍스트 필드로 데이터를 어떻게 전달합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.