2013-09-26 7 views
0

안녕하세요. 개체가있는 JComboBox가 있습니다. 이 객체는 이름, idnr 등을 포함하는 인물 객체이며 모든 객체가이 JComboBox에 표시됩니다.JcomboBox의 개체 구성 요소를 텍스트 영역에 추가

개체 중 하나를 선택할 때이 개체의 여러 속성을 텍스트 영역 옆에 표시하려고합니다.

내가 뭘 지금

overzicht = textarea 
personenList is the JcomboBox 

if(event.getSource() == personenList) { 
    overzicht.append(); 
} 

입니다하지만 어떻게이 같은 지역에서 내가 원하는 모든 구성 요소를 추가 할 수 있습니까? (내가 지금 당장하고 있다고 가정)

P입니다. 모든 구성 요소가 문자열이 아닙니다!

+0

'구성 요소'는 무엇을하고 있는지 확실하지 않습니다. 'Person' 속성을 의미합니까? – nachokk

+0

무엇을 의미합니까? **이 개체의 여러 구성 요소가 표시되도록 **. 'jComboBox'에서 ** name **을 선택하면이 이름과 관련된 사람의 모든 세부 정보를'jTextArea'에 표시 할 수 있습니까? – Yubaraj

+0

예. 나는 속성을 의미합니다. 내가 A라는 사람을 선택할 때 그의 이름, 은행 계좌 번호 등을 보여주기를 원합니다. 사람 B를 선택할 때 그의 속성이 표시되기를 원합니다. – Reshad

답변

1

개인을 콤보 상자로 렌더링하려면 직접 ListCellRenderer을 작성해야합니다. 콤보 상자의 선택 변경 이벤트를 수신하려면 항목 수신기를 작성해야합니다. 콤보 상자의 선택에 따라 해당 사람을 가져와 텍스트 영역에 적절한 텍스트를 설정할 수 있습니다.

JCombobox에 대한 자세한 내용은 link을 방문하십시오.

class ItemChangeListener implements ItemListener{ 
    @Override 
    public void itemStateChanged(ItemEvent event) { 
     if (event.getStateChange() == ItemEvent.SELECTED) { 
      Object item = event.getItem(); 
      // do something with object 
      if(item instanceof Person) { 
      this.selectedPerson = (Person) item; 
      // textArea.setText(person.toString()); 
      } else { 
      this.selectedPerson = null; 
      } 
     } 
    }  
} 

이 'ItemChangeListener'

또한 유형 PersonselectedPerson 인스턴스 변수를 포함해야 JComboBox에와 텍스트 영역 및 패널을 모두 포함하여 패널의 내부 클래스이어야한다.

+0

예.하지만 문제는 할 수 있습니다. 사람을 선택하면 해당 사람으로부터 정보를 얻는 방법을 찾지 못합니다. 내 beginpost 참조 콤보 상자에서 선택한 개체를 찾는 방법에 대한 예제를 내게 줄 수 – Reshad

+0

어느 값을 itemStateChanged에 부여해야합니까? – Reshad

+0

'itemStateChanged'에 값을 줄 필요가 없습니다. 그냥'ItemChangeListener'의 인스턴스를 만들고 콤보 상자에 다음을 사용하여 이것을 추가하십시오 : 'comboBox.addItemListener (new ItemChangeListener())'. 콤보 상자에서 값을 변경하면 이벤트 핸들러는'itemStateChanged' 메서드를 호출하고'ItemEvent' 개체를 전달합니다. –

관련 문제