Maison >Java >javaDidacticiel >Comment connecter une JList dans un JPanel à un JTextPane dans un autre ?

Comment connecter une JList dans un JPanel à un JTextPane dans un autre ?

DDD
DDDoriginal
2024-12-07 15:11:16897parcourir

How to Connect a JList in One JPanel to a JTextPane in Another?

Câblage d'un volet à un autre

Connexion de PaneWithList à la sortie

Dans la classe principale, Main.java, nous avons plusieurs volets, dont PaneWithList et Output . PaneWithList contient une JList qui affiche les données, tandis que Output est un JTextPane qui doit afficher les données sélectionnées dans la JList. La question se pose : comment pouvons-nous connecter PaneWithList à Output pour y parvenir ?

PropertyChangeSupport for Data Output

Une solution potentielle consiste à utiliser PropertyChangeSupport. Ce mécanisme permet à PaneWithList de déclencher un événement lorsqu'une ligne de la JList est sélectionnée. Main peut écouter cet événement et mettre à jour le Output JTextPane en conséquence.

Utiliser le modèle d'observateur pour la communication

Une autre approche consiste à utiliser le modèle d'observateur. Dans ce modèle, PaneWithList est un observable qui avertit ses observateurs lorsque les données changent. La sortie peut être un observateur qui écoute ces changements et se met à jour.

Exemple d'implémentation utilisant un modèle d'observateur

L'extrait de code fourni montre comment implémenter le modèle d'observateur pour connecter PaneWithList à Output :

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

class ObserverPanel extends JPanel {

    private JLabel title = new JLabel("Value received: ");
    private JLabel label = new JLabel("null", JLabel.CENTER);

    public ObserverPanel() {

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