> Java > java지도 시간 > PaneWithList의 선택된 행으로 업데이트하기 위해 JTextPane을 연결하는 방법은 무엇입니까?

PaneWithList의 선택된 행으로 업데이트하기 위해 JTextPane을 연결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-30 02:20:10
원래의
642명이 탐색했습니다.

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

한 창을 다른 창에 연결하는 방법: 출력을 PaneWithList에 연결

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿