Pour connecter la sortie de la ligne sélectionnée dans PaneWithList au JTextPane en sortie, pensez à utiliser l'observateur modèle. Ce modèle de conception implique la création d'une classe observable (telle que PaneWithList) qui informe ses observateurs (tels que la sortie) lorsqu'une propriété change.
1. Ajoutez un PropertyChangeListener à PaneWithList :
class PaneWithList extends JPanel { ... private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); ... // Notify observers when the selected row changes protected void fireSelectedRowChanged(int oldValue, int newValue) { propertyChangeSupport.firePropertyChange("SELECTED_ROW", oldValue, newValue); } // Add a property change listener public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } }
2. Créer une classe d'observateur Sortie :
class Output extends JTextPane implements PropertyChangeListener { ... // Handle property change events from `PaneWithList` @Override public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("SELECTED_ROW")) { int row = (int) e.getNewValue(); String selectedItem = paneWithList.getSelectedValue(); // Get the selected item from `PaneWithList` append(selectedItem + "\n"); // Display the selected item in the text pane } } }
3. Établissez la relation d'observateur :
Dans votre classe Main, ajoutez un observateur à PaneWithList et connectez-le à l'objet Output.
import java.beans.PropertyChangeListener; public class Main { ... public static void main(String[] args) { ... paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output` ... } }
Maintenant, lorsque la ligne sélectionnée dans PaneWithList change, Output sera sera averti et mettra à jour son texte en conséquence.
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!