Rumah >Java >javaTutorial >Bagaimana untuk Mendawai JTextPane untuk Kemas Kini dengan Barisan Terpilih 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.
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!