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