2010-01-20 3 views
2

"jComboBox18"이라는 JComboBox와 "jTextArea11"이라는 JTextArea가 있습니다. 이제 항목이 "jComboBox18"콤보 상자에서 선택 될 때마다 해당 설명이 "jTextArea11"텍스트 영역에 표시됩니다.Java Swing에서 JTextArea를 업데이트하는 방법은 무엇입니까?

적절한 청취자를 JComboBox에 추가했지만 JTextArea가 텍스트를 표시하지 않습니다.

private void jComboBox18ItemStateChanged(java.awt.event.ItemEvent evt) { 

    Object item = jComboBox18.getSelectedItem(); 

    if(item != null) { 
     ems.logic.Process selectedProcess = (ems.logic.Process)item; 

     jTextArea11.setText(selectedProcess.getProcessDescription()); 
     jTextArea11.updateUI(); 
     jTextArea11.revalidate(); 
     jTextArea11.validate(); 
    } 
} 

===================== EDITED을 =========== 다음과 같이 내가 작성한 코드는 ================

메서드가 호출되고 있습니다. 나는 "jComboBox18"에서 항목이 선택 될 때마다이 방법으로 쓰여지고있는 하나의 콤보 상자 의 상태를 변경하고 있습니다.

+3

질문에서 멀리 떨어져 : 정말 당신의 진짜 개발 코드에 변수가 다른 이름이 바란다. – Mnementh

+0

직접 문제 : 새 항목을 선택하면이 코드가 호출되는지 확인할 수 있습니까? – Mnementh

+0

그래서 메소드가하는 다른 함수가 실제로 실행됩니다. 그래서 우리는 더 깊이 조사해야합니다. 코드는 if 절에 의해 보호됩니다. 아이템입니다! = null이거나 다르게 요청됩니다 : if-branch가 입력 되었습니까? – Mnementh

답변

2

나는 그렇게 생각합니다. 실제로는 setText() 호출 만 필요합니다. 내 생각 엔 당신이 기능이 어떤 이유로 전화를받지 않는다는 것입니다. 코드에 중단 점을 넣고 코드가 호출되는지 확인하십시오.

0

코드에 표시된 코드는 jComboBox18ItemStateChanged입니다. 이 메소드가 호출되고 있는지 확인하십시오. JComboBox의 ItemListener는, 서브 클래스가 이하의 메소드를 구현할 필요가 있다고 선언하는 ItemListener 인터페이스를 구현할 필요가 있습니다.

void itemStateChanged(ItemEvent e); 

JComboBox에 ItemListener의 인스턴스를 추가하는 방법은 무엇입니까?

편집 : 당신은 텍스트 영역이 업데이트 될 때 트리거 아마 ITIS는 JComboBox의 리스너에서 수행 변경 사항을 취소하는 리스너가 : 내가 생각할 수있는 또 다른 possiblity가이 때문이다
당신의 편집과 의견을 읽은 후.

관련 문제