PaneWithList에서 선택한 행의 출력을 출력의 JTextPane에 연결하려면 관찰자 사용을 고려하세요. 무늬. 이 디자인 패턴에는 속성이 변경될 때 관찰자(예: 출력)에게 알리는 관찰 가능한 클래스(예: PaneWithList)를 생성하는 작업이 포함됩니다.
1. PaneWithList에 PropertyChangeListener를 추가합니다:
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. 관찰자 클래스 생성 출력:
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. 관찰자 관계 설정:
Main 클래스에서 PaneWithList에 관찰자를 추가하고 이를 출력 객체에 연결합니다.
import java.beans.PropertyChangeListener; public class Main { ... public static void main(String[] args) { ... paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output` ... } }
이제 PaneWithList에서 선택한 행이 변경되면 출력이 알림을 받고 이에 따라 텍스트가 업데이트됩니다.
위 내용은 PaneWithList의 선택된 행으로 업데이트하기 위해 JTextPane을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!