Maison >Java >javaDidacticiel >Comment transmettre les données d'une JTable dans un JFrame aux champs de texte dans un autre JFrame ?

Comment transmettre les données d'une JTable dans un JFrame aux champs de texte dans un autre JFrame ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 19:00:30490parcourir

How do you pass data from a JTable in one JFrame to text fields in another JFrame?

Transmission de données entre JFrames

Dans ce scénario, vous disposez de deux JFrames : frame1, qui comprend des champs de texte, et frame2, qui contient un champ de recherche et une JTable contenant les résultats de la recherche. Votre objectif est de refléter les valeurs sélectionnées dans la JTable dans les champs de texte du frame1.

Références d'objet et communication

Votre question mentionne le passage de l'objet du frame1 en tant que paramètre, mais il est crucial de comprendre que le passage de références entre des objets GUI suit les mêmes principes que le passage de références dans du code Java non-GUI. La référence au deuxième JFrame (frame2) est généralement accessible dans le premier JFrame (frame1), vous permettant d'invoquer ses méthodes directement.

Accès à l'état entre fenêtres

Le moment d'accès à l'état d'une fenêtre à partir d'une autre dépend de la relation entre les fenêtres. Pour les boîtes de dialogue modales, la première fenêtre peut récupérer les données immédiatement après le retour de la boîte de dialogue, c'est-à-dire le code exécuté après avoir rendu la boîte de dialogue visible.

Pour les boîtes de dialogue non modales, vous comptez souvent sur les écouteurs pour déterminer quand extraire le informations.

Exemple : Passage de texte entre Windows

Pour illustrer ce concept, considérons l'exemple suivant :

<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>

Dans cet exemple, lorsque le bouton dans frame1 est cliqué, un frame2 JDialog est ouvert. La référence à frame2 est détenue par frame1, permettant à ce dernier d'accéder et de manipuler le texte dans le JTextField dans frame2.

De même, vous pouvez récupérer des données d'une JTable dans votre scénario spécifique en utilisant des techniques basées sur l'écouteur pour déterminer quand la ligne souhaitée est sélectionnée dans le tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn