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 중국어 웹사이트의 기타 관련 기사를 참조하세요!