2014-02-08 2 views
-2

사용자 (사용자)를 표시하기 위해 사용자 정의 ListModel로 jList를 만들었습니다. 나는 dao 아키텍처를 사용하려고합니다. 내가 DAO 클래스를 사용하여 내 컬렉션에 연락처를 추가 할 때 Listmodel이 업데이트되지 않습니다. listmodel이 파괴 된 것 같습니다.java.util.list를 listmodel에 연결

여기 내 customListModel의 Jlist입니다.

> Service dcs = new DefaultService(MyDao); 
> CustomListModel cList = new CustomListModel(dcs); 
> list = new JList<>(cList); 
> list.addMouseListener(new ContactListItemListener(list,this.dcs)); 

CustomListModel :

public class CustomListModel extends DefaultListModel<Contact>{ 

    private ContactService dcs ; 

    public CustomListModel(ContactService dcs) { 
     this.dcs = dcs; 
    } 

    @Override 
    public void addListDataListener(ListDataListener arg0) { 
     // TODO Auto-generated method stub 

    } 
    @Override 
    public Contact getElementAt(int i) { 
     System.out.println(dcs.list().size()+" Test "+dcs.list()); //just for testing 
     return dcs.list().get(i); 

    } 

    @Override 
    public int getSize() { 
     return dcs.list().size(); 
    } 

    @Override 
    public void removeListDataListener(ListDataListener arg0) { 
     // TODO Auto-generated method stub 

    } 

} 

내 청취자의의 actionPerformed에

다음의 actionPerformed가 실행되면

public void actionPerformed(ActionEvent e) { 
     this.dcs.add(new User()); 
} 

가, 새 사용자가 사용자의 내 목록에 추가되지만, customListModel이 test 메시지를 표시하지 않으면 customListModel이 삭제 된 것 같습니다. 내 나쁜 영어

+3

관련 코드를 게시해야합니다. 해당 코드를 입력하지 않으면 질문에 답변 할 수 없습니다. –

+0

Define - _ "destroyed"_ –

+0

현재 상태에서 응답하지 않음으로 닫기 위해 투표. 제발 개선해. –

답변

1

뭔가가 데이터베이스에 추가 된 것을 알 수있는 방법이 없기 때문에 JList의 새로 고침하지 않습니다에 대한 그것은 따라서 새로운 요소 모델을 다시 요청해야 죄송

. 데이터베이스에 무언가를 추가하거나 새 모델이있는 새 모델로 목록 모델을 바꾸려면 이벤트를 시작해야합니다.

사실, DefaultListModel을 캡슐화하는 데이터를 사용할 계획이 아니라면 DefaultListModel을 확장하지 말고 AbstractListModel을 확장하면 안됩니다. 이벤트를 발생시키는 방법은 fireXxx()을 참조하십시오.

+0

Jb에게 고마워, 작동 해! 내 서비스가있는 사용자를 추가 한 후 새 listmodel을 jList에 설정합니다. 내 목록을 변경할 때마다 listmodel을 재설정하지 않고도 동일한 작업을 수행 할 수 있습니까? fire *() 메서드를 사용하는 방법을 검색했지만 간단한 튜토리얼을 찾지 못했습니다. – obiyadi

+0

AbstractListModel에 대한 +1 작업 – mKorbel