2011-01-12 4 views
0

DB에서 데이터를 표시하는 데 JList를 사용하는 Java Swing 응용 프로그램이 있습니다. 나는이 방법으로 목록의 데이터 모델로 DefaulListModel을 사용하고JList가 항목을 표시하거나 선택적으로 표시하지 않습니다.

:

void PopulateSoldiersList() 
{ 
     try 
     { 
      soldiersListModel = new DefaultListModel(); 
      for (Soldier i : myBackEnd.GetAllSoldiers()) 
      { 
       soldiersListModel.addElement(i); 
      } 
      this.listSoldiers.setModel(soldiersListModel); 
     } 
     catch (Exception ex) {// Error Message} 
} 

그리고 어떤 이유로, 목록 그냥 빈칸으로

...

난 런타임에 확인 않았다 모든 데이터가 데이터 모델과 JList의 "dataModel"속성에도 제대로 설정되어 있는지 확인하십시오. 응용 프로그램에서 다른 장소에서

나는 비슷한 문제를 가지고 있지만,이, 때로는 목록은 모델 (전부는 아니지만 그들 중) 나는 당장은 아무 생각

에서 몇 가지 항목을 보여줍니다 ..

도와주세요. 감사합니다.

+0

'Soldier' 클래스에'toString' 메소드가 정의되어 있습니까? – Starkey

+0

이 작업을 수행 할 때이 목록이 이미 표시되어 있습니까? 아니면 초기화시입니까? –

+0

물론 있습니다. 목록이 표시되고 toString이 구현되었습니다. 가장 이상한 일은 1 시간 전까지는 완벽하게 작동 한 다음 아이템을 보여주는 것을 멈추는 것입니다. –

답변

0

허위 경보.

나는 정말로 나 자신을 죽일 필요가있다.

다른 목록이 있는데 두 목록을 채우는 비슷한 방법을 사용했습니다.

실제로 그들은 매우 유사하여 위에 게시 된 방법을 복사하여 붙여 넣어 다른 목록을 채 웁니다. 난에 대한 ... 그래서 내가 같은 목록을 채우는 두 가지 방법으로 결국

데이터 모델을 설정하고있어 목록의 이름을 내 무한한 지혜에서

나는 단 한 가지를 변경하는 것을 잊었다 : 유효한 데이터가있는 전나무 하나, 두 번째는 빈 데이터로 대체됩니다. 나를 위해

그리고 난 방법이라는 어떤 순서로 추측 ...

myBackEnd = new DBBackEnd(); 
initComponents(); 
PopulateSoldiersList(); 
PopulateMissionsList(); 

더 이상 복사 - 붙여 넣기!

+1

코드 섹션을 복사하여 붙여 넣고 변수 이름 만 변경하는 경우. 나는 당신이 멈추고 생각할 것을 제안한다. (나는 이것을 여러 번 호출하는 방법을 사용해야 하는가?). – jzd

+0

네가 맞다. 일반적으로 나는 당신이 기대하는 바를 정확하게 수행한다. 하나의 일반적인 방법을 만든다. 하지만 각 목록은 다른 데이터 소스에서 채워지기 때문에 각 메소드마다 다른 메소드를 작성하기로 결정했습니다. –

+0

실생활 프로젝트에서 복사와 붙여 넣기가 사악하다는 것을 알게되었습니다. 매번 라인별로 라인을 검사해야합니다. – alexander