스윙 구성 요소가있는 Java 응용 프로그램을 작성하고 있습니다. Java DefaultListModel 이상한 요소가 포함 된 문제
private DefaultListModel<Module> moduleListModel;
private DefaultListModel<Module> sem1ListModel;
모듈
내가 생성 한 dataclass이다 : 나는이 둘을 되 DefaultListModel에서 데이터를 얻을이 JList의를 가지고있다.이제는 sem1ListModel에도있는 경우 moduleListModel에서 모듈을 제거하고 싶습니다. 나는 defaultListModel도 있습니다 sem1ListModel 3 개 모듈이 알고, 그리고 그들입니다 포함 된 경우 내가 사용하는 코드를 확인하려면 다음이 코드가 작동해야
for(int i = 0; i < sem1ListModel.getSize(); i++){
Module mod = sem1ListModel.getElementAt(i);
System.out.println(mod);
if(moduleListModel.contains(mod)){
System.out.println(mod);
moduleListModel.removeElement(mod);
}
}
, 모듈이 모두 정확히 동일로, 아직 그렇지 않습니다!
System.out.println(sem1ListModel);
System.out.println(moduleListModel);
sem1ListModel : [소프트웨어 개발 1 [7 학점, ICT 관리 (1) [7 학점, DOA I [6 학점] 내가 출력 창에 모두 DefaultListModel를 인쇄 할 때 ,이 수 moduleListModel : [DOA I [6 학점, 소프트웨어 개발 1 [7 학점, ICT 관리 (1) [7 학점,자인 2 [5 학점, 소프트웨어 1 [5 학점]
당신이 할 수 소프트웨어 개발 1 [7 학점], ICT 관리 1 [7 학점], DOA I [6 학점] DefaultListModels에 있고 moduleListModel에서 삭제해야하는 3 개의 모듈입니다. 그러나 아직 발생하지 않습니다.
내가 뭘 잘못하고 있니?
모델을 어떻게 채우고 있습니까? 그'Module's가 overriden equals이없는 다른 객체인지 궁금합니다. – Ordous
공공 무효 LoadModules (ArrayList 모듈) { \t \t moduleListModel.clear(); (모듈 MOD : 모듈) 용 \t \t \t \t { \t \t \t moduleListModel.addElement (MOD); \t \t 모듈 ArrayList는 Module-objects로 채워진 ArrayList입니다. sem1ListMoel도 같은 방식으로 채워집니다. –
Fluppe
동일한 _toString() _ 구현 (로깅에 표시된 것처럼)을 사용하면 객체가 동일하지 않음을 기억하십시오. _mod1_ _quals (mod2) == true_를 가져야합니다. _Module_의 _equals() _ 메서드를 재정의하지 않은 경우 _mod1 == mod2_와 동일합니다. – schmop