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
Lepaskan: 2024-11-30 02:20:10
asal
642 orang telah melayarinya

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);
    }
}
Salin selepas log masuk

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
        }
    }
}
Salin selepas log masuk

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`
        ...
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan