Übergabe von Daten zwischen JFrames
In diesem Szenario haben Sie zwei JFrames: Frame1, der Textfelder enthält, und Frame2, der ein enthält Suchfeld und eine JTable mit Suchergebnissen. Ihr Ziel ist es, die ausgewählten Werte aus der JTable in den Textfeldern von Frame1 wiederzugeben.
Objektreferenzen und Kommunikation
In Ihrer Frage wird erwähnt, dass das Objekt von Frame1 als Parameter übergeben wird. Es ist jedoch wichtig zu verstehen, dass die Übergabe von Referenzen zwischen GUI-Objekten denselben Prinzipien folgt wie die Übergabe von Referenzen in Nicht-GUI-Java-Code. Auf den Verweis auf den zweiten JFrame (Frame2) kann normalerweise innerhalb des ersten JFrame (Frame1) zugegriffen werden, sodass Sie dessen Methoden direkt aufrufen können.
Cross-Window State Access
Der Zeitpunkt für den Zugriff auf den Status eines Fensters von einem anderen hängt von der Fensterbeziehung ab. Bei modalen Dialogen kann das erste Fenster unmittelbar nach der Rückkehr des Dialogs Daten abrufen. Dabei handelt es sich um den Code, der nach dem Sichtbarmachen des Dialogs ausgeführt wird.
Bei nichtmodalen Dialogen verlassen Sie sich häufig auf Listener, um zu bestimmen, wann die Daten extrahiert werden sollen Informationen.
Beispiel: Übergeben von Text zwischen Fenstern
Um dieses Konzept zu veranschaulichen, betrachten Sie das folgende Beispiel:
<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>
In diesem Beispiel: wann Wird die Schaltfläche in Frame1 angeklickt, wird ein JDialog Frame2 geöffnet. Der Verweis auf Frame2 wird von Frame1 gehalten, sodass dieser auf den Text im JTextField innerhalb von Frame2 zugreifen und ihn bearbeiten kann.
Ähnlich können Sie in Ihrem spezifischen Szenario Daten aus einer JTable abrufen, indem Sie Listener-basierte Techniken verwenden Bestimmen Sie, wann die gewünschte Zeile in der Tabelle ausgewählt ist.
Das obige ist der detaillierte Inhalt vonWie übergibt man Daten von einer JTable in einem JFrame an Textfelder in einem anderen JFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!