>Java >java지도 시간 >SwingPropertyChangeSupport를 사용하여 JTextArea를 동적으로 업데이트하는 방법은 무엇입니까?

SwingPropertyChangeSupport를 사용하여 JTextArea를 동적으로 업데이트하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-06 03:04:02888검색

How to Dynamically Update JTextArea Using SwingPropertyChangeSupport?

SwingPropertyChangeSupport를 사용하여 JTextArea를 동적으로 업데이트

코드 조각에서 배열을 나타내는 JTextArea가 업데이트되지 않는 문제에 직면했습니다. 수정 후 업데이트는 입력 대화 상자를 사용하여 수행됩니다. 이는 속성이 변경되었음을 SwingPropertyChangeSupport에 올바르게 알리지 않았기 때문에 발생합니다.

이 문제를 해결하려면 ArrayForUpdating 클래스를 수정해 보겠습니다.

<code class="java">public class ArrayForUpdating {
    // Existing code...

    public void setArrayData(int a, int memData) {
        // Existing code...

        // Fire the property change event
        setArrayyDisplayString();
        firePropertyChange(BOUND_PROPERTY, oldValue, newValue);
    }
}</code>

setArrayData 메서드에서 배열을 생성하고 새 표시 문자열을 생성한 후 이제 firePropertyChange를 사용하여 속성 변경 이벤트를 명시적으로 시작합니다. 이는 등록된 모든 리스너에게 BOUND_PROPERTY가 수정되었음을 알립니다.

이러한 방식으로 속성을 업데이트하면 GuiForUpdate 클래스에 변경 사항이 통보되고 그에 따라 JTextArea가 업데이트됩니다.

다음은 다음과 같습니다. 업데이트된 GuiForUpdate 클래스:

<code class="java">public class GuiForUpdate extends JFrame implements ActionListener {

    // Existing code...

    /**
     * Adds a display area for array
     */
    public void layoutDisplay() {
        // Existing code...

        arrayForUpdate.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent pcEvt) {
                if (pcEvt.getPropertyName().equals(
                        ArrayForUpdating.BOUND_PROPERTY)) {
                    mList = (pcEvt.getNewValue().toString());
                    displayOutput.setText(mList);
                }
            }
        });
    }
}</code>

layoutDisplay 메소드에서 BOUND_PROPERTY가 변경될 때 displayOutput 텍스트 영역을 업데이트하도록 속성 변경 리스너를 업데이트했습니다.

이러한 변경 사항을 통합하여 JTextArea 이제 입력 대화 상자를 통해 어레이에 대한 모든 수정 사항을 동적으로 반영합니다.

위 내용은 SwingPropertyChangeSupport를 사용하여 JTextArea를 동적으로 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.