Maison  >  Article  >  Java  >  Comment transmettre les valeurs d'une JTable dans un deuxième JFrame aux champs de texte du JFrame d'origine ?

Comment transmettre les valeurs d'une JTable dans un deuxième JFrame aux champs de texte du JFrame d'origine ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 03:09:30937parcourir

How do you pass values from a JTable in a second JFrame to text fields in the original JFrame?

Passer des valeurs entre des JFrames

Défi

Lorsque vous cliquez sur une ligne dans une JTable dans un deuxième JFrame, l'objectif est que les valeurs sélectionnées remplissent les champs de texte du JFrame d'origine.

Analyse

Bien que l'architecture du programme puisse suggérer d'utiliser un JDialog plutôt que un JFrame, les deux reposent sur le même principe de transmission de références d'objet GUI comme dans le code Java standard.

Dans le cas de fenêtres JFrame ouvrant d'autres JFrames, le premier cadre contient généralement une référence au second, lui permettant de appeler ses méthodes. Le timing de ces appels dépend du fait que la deuxième image soit une boîte de dialogue modale ou non.

Solution

Pour les boîtes de dialogue modales, le moment idéal pour récupérer l'état est immédiatement après la boîte de dialogue revient. Pour les dialogues non modaux, un écouteur peut être utilisé pour surveiller quand les informations doivent être extraites.

Exemple de code

Pour illustrer ce concept avec un exemple simple, considérons le code suivant :

<code class="java">// MyFramePanel holds a reference to MyDialogPanel and its JDialog

class MyFramePanel extends JPanel {

    // ...

    // When the "Open Dialog" button is clicked, the dialog is opened
    private void openTableAction() {
        if (dialog == null) {
            dialog = new JDialog(win, "My Dialog", ModalityType.APPLICATION_MODAL);
            dialog.getContentPane().add(dialogPanel);
            dialog.pack();
            dialog.setLocationRelativeTo(null);
        }
        dialog.setVisible(true); // Modal dialog takes over

        // After the dialog is disposed, retrieve the text from its JTextField
        field.setText(dialogPanel.getFieldText());
    }
}</code>

Cet exemple montre comment la référence au panneau de dialogue permet aux données du champ de texte de la boîte de dialogue d'être transférées vers le champ de texte du cadre principal. Une technique similaire peut être appliquée à la récupération de données d'une JTable.

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