2011-08-14 3 views
0

예나를 사용하고 있습니다. rdf 파일에서 인스턴스를 추가, 수정 및 제거 할 수있는 인터페이스를 만들었습니다. 단추 다음에 문제가 있습니다. 그것은 효과가 있지만 완벽하지는 않습니다. 마지막 인스턴스에 도달하면 첫 번째 인스턴스로 돌아가고 싶습니다. 그러나 마지막 단계에 도달하면 Next 버튼을 누를 때마다 마지막 인스턴스를 반복합니다. 이 문제를 어떻게 해결할 수 있습니까? p는 여전히 indice보다 작은 경우 루프를 들어, 당신이 목록의 끝에 도달 한 것을 의미API Jena - 버튼 "다음"인터페이스가 제대로 작동하지 않습니다.

//Button Next 
class ActionSuivant implements ActionListener 
{ 
    public void actionPerformed(ActionEvent evt) 
    { 

     ++indice; 

     ExtendedIterator instances=onto.personne.listInstances(); 

     Individual instance = null; 
       for(p = 0; p < indice && instances.hasNext(); p++) 
       { 
        instance = (Individual) instances.next(); 

        }  
       tabTF[0].setText(instance.getPropertyValue(onto.aPourPrenom).toString()); 
       tabTF[1].setText(instance.getPropertyValue(onto.aPourNom).toString()); 
       tabTF[2].setText(instance.getPropertyValue(onto.aDateNaiss).toString()); 
       tabTF[3].setText(instance.getPropertyValue(onto.aGenre).toString()); 

    } 
} 

답변

3

의 끝에 :

여기에 다음 버튼 내 조각 코드입니다. indice를 1로 재설정하고 반복자의 첫 번째 요소를 반환합니다.

public void actionPerformed(ActionEvent evt) 
{ 
    ++indice; 
    ExtendedIterator instances = onto.personne.listInstances(); 
    Individual instance = null; 
    Individual firstInstance = null; 
    for (p = 0; p < indice && instances.hasNext(); p++) { 
     instance = (Individual) instances.next(); 
     if (firstInstance == null) { 
      firstInstance = instance; 
     } 
    }  
    if (p < indice) { 
     indice = 1; 
     instance = firstInstance; 
    } 
    tabTF[0].setText(instance.getPropertyValue(onto.aPourPrenom).toString()); 
    tabTF[1].setText(instance.getPropertyValue(onto.aPourNom).toString()); 
    tabTF[2].setText(instance.getPropertyValue(onto.aDateNaiss).toString()); 
    tabTF[3].setText(instance.getPropertyValue(onto.aGenre).toString()); 
} 

또한 속성을 가져 오기 전에 인스턴스가 null이 아닌지 확인해야합니다.

반복자보다는 목록이 있다면 쉽게 색인에 의해 요소에 액세스 할 수 있습니다.

+0

JB Nizet에게 도움을 주셔서 감사합니다. 버튼 "이전"에 대한 접근 방식은 비슷합니까? – ARH

+0

예. 그러나 이전 버튼이 목록 시작 부분에있을 때 마지막 요소로 이동하면 목록이 상당히 짧음을 의미하며 모든 요소를 ​​반복하여 ArrayList에 저장해야합니다. 이 방법을 사용하면 단추가 매번 반복되는 것이 아니라 인덱스로 ArrayList에 액세스 할 수 있습니다. –

관련 문제