2014-01-19 2 views
0

jList를 채우려는 중입니다. 이름을 표시하고 목록의 각 항목에 대한 ID (표시되지 않음)를 저장하려고합니다.jList/listModel에서 객체의 요소에 액세스

나는 목록 모델을 만들고 각 요소를 개체로 추가했습니다. 목적은 int 값합니다 (ID) 및 문자열 값 (이름)을 원하는 분야

doorListModel.addElement(nextDoor); 

모든 요소 내가 다음의 JList에이 모델을 보내 추가되면 :

jList1.setModel(doorListModel); 

jList가 각 요소에 대한 메모리 위치를 표시하는 것처럼 보이는 프로그램을 실행합니다. jList에 문자열 값만 표시되도록하려면 어떻게해야합니까? (가능하면) 숨겨진 int에 액세스하려면 어떻게해야합니까? 가치를 선택한다면 난 jList에서.

건배.

답변

3

내가보기로 두 가지 옵션이있어 :이 JList의 기본으로 디스플레이, 또는

  • 당신의 JList에게 알맞은를 부여 무엇 때문에 당신은 당신의 문 클래스 괜찮은 toString() 방법을 제공 할 수 있습니다
    • ListCellRenderer. toString() 결과는 실제로 프로덕션 용도로 사용해서는 안되며 디버깅 용도로 사용하는 것이 좋습니다.
  • +2

    렌더러 방식을 사용하는 경우 모델에서 객체의 toString() 구현을 사용하여 검색을 수행하기 때문에 JList의 getNextMatch (...) 메소드를 무시하는 것을 잊지 마십시오. 목록에있는 항목 중. 이 메소드를 오버라이드 (override)하지 않는 경우, JList의 디폴트 기능이 깨질 가능성이 있습니다. – camickr

    +0

    ListCellRenderers를 사용하는 방법에 대해 누구나 자세히 설명 할 수 있지만 다음과 같은 내용이 있지만 전혀 이해하지 못합니다. http://www.coderanch.com/t/342147/GUI/java/understanding-custom-ListCellRenderers – Suipaste

    +0

    @ Suipaste : ListCellRenderer의 사용법은 [JList Tutorial] (http://docs.oracle.com/javase/tutorial/uiswing/components/list.html)에 자세히 설명되어 있습니다. 나는 당신이 그것을 한 번 해보고 한 번 시도해 볼 것을 제안한다. 여전히 문제가 있다면 위의 질문에 대한 구체적인 질문을하고 완전한 튜토리얼을 다시 작성하지 않고 대답하는 것이 거의 불가능합니다. 질문이 구체적 일수록, 대개 좀 더 구체적이고 도움이되는 대답을 기억하십시오. –