Heim > Java > javaLernprogramm > Wie verbinde ich ein JTextPane zur Aktualisierung mit der ausgewählten Zeile von PaneWithList?

Wie verbinde ich ein JTextPane zur Aktualisierung mit der ausgewählten Zeile von PaneWithList?

Patricia Arquette
Freigeben: 2024-11-30 02:20:10
Original
662 Leute haben es durchsucht

How to Wire a JTextPane to Update with PaneWithList's Selected Row?

So verbinden Sie einen Bereich mit einem anderen: Verknüpfen der Ausgabe mit paneWithList

Um die Ausgabe der ausgewählten Zeile in PaneWithList mit dem JTextPane in der Ausgabe zu verbinden, sollten Sie den Beobachter verwenden Muster. Dieses Entwurfsmuster beinhaltet die Erstellung einer beobachtbaren Klasse (z. B. PaneWithList), die ihre Beobachter (z. B. die Ausgabe) benachrichtigt, wenn sich eine Eigenschaft ändert.

Implementierung des Beobachtermusters

1. Fügen Sie einen PropertyChangeListener zu PaneWithList hinzu:

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);
    }
}
Nach dem Login kopieren

2. Erstellen Sie eine Beobachterklasse. Ausgabe:

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
        }
    }
}
Nach dem Login kopieren

3. Stellen Sie die Beobachterbeziehung her:
Fügen Sie in Ihrer Hauptklasse einen Beobachter zu PaneWithList hinzu und verbinden Sie ihn mit dem Output-Objekt.

import java.beans.PropertyChangeListener;

public class Main {
    ...
    
    public static void main(String[] args) {
        ...
        
        paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output`
        ...
    }
}
Nach dem Login kopieren

Wenn sich nun die ausgewählte Zeile in PaneWithList ändert, wird Output dies tun werden benachrichtigt und werden den Text entsprechend aktualisieren.

Das obige ist der detaillierte Inhalt vonWie verbinde ich ein JTextPane zur Aktualisierung mit der ausgewählten Zeile von PaneWithList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage