Rumah >Java >javaTutorial >Bagaimana untuk Mendawai JTextPane untuk Kemas Kini dengan Barisan Terpilih PaneWithList?

Bagaimana untuk Mendawai JTextPane untuk Kemas Kini dengan Barisan Terpilih PaneWithList?

Patricia Arquette
Patricia Arquetteasal
2024-11-30 02:20:10643semak imbas

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

Cara menyambungkan satu anak tetingkap ke yang lain: Menjalankan output ke paneWithList

Untuk menyambungkan output baris yang dipilih dalam PaneWithList ke JTextPane dalam output, pertimbangkan untuk menggunakan pemerhati corak. Corak reka bentuk ini melibatkan penciptaan kelas boleh diperhatikan (seperti PaneWithList) yang memberitahu pemerhatinya (seperti output) apabila sifat berubah.

Melaksanakan Corak Pemerhati

1. Tambahkan PropertyChangeListener pada 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. Cipta Output kelas pemerhati:

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. Wujudkan Hubungan Pemerhati:
Dalam kelas Utama anda, tambahkan pemerhati pada PaneWithList dan sambungkannya ke objek Output.

import java.beans.PropertyChangeListener;

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

Sekarang, apabila baris yang dipilih dalam PaneWithList berubah, Output akan dimaklumkan dan akan mengemas kini teksnya dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Mendawai JTextPane untuk Kemas Kini dengan Barisan Terpilih PaneWithList?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn