행의 JTable 중복 값: 수수께끼 해결
JTable을 채우는 명백한 중복 값에 대한 우려에 대응하여 자세한 조사를 통해 기본 데이터 모델이 실제로 올바른 데이터를 보유하고 있음이 밝혀졌습니다. 근본 원인을 이해하기 위해 제공된 코드를 자세히 살펴보겠습니다.
사용자 정의 CollectionDataModel에서 populate() 메서드를 호출하면 데이터가 테이블에 렌더링될 것으로 예상됩니다. 그러나 데이터를 채우기 전에 데이터를 지우면 문제가 발생합니다. 이는 data.clear() 라인을 통해 수행됩니다.
이를 더 자세히 설명하기 위해 예제 시나리오를 고려해 보겠습니다. 데이터 모델이 처음에 두 개의 행을 포함하고 각 행에 세 개의 열이 있다고 가정합니다. populate()를 호출하면 이 데이터가 지워지고 테이블은 비워집니다. 이제 새 컬렉션이 반복되면서 컬렉션에 있는 마지막 항목의 데이터만 테이블에 반영됩니다. 이는 데이터 모델의 데이터 필드가 데이터의 마지막 행만 유지하기 때문에 발생합니다.
결과적으로 JTable의 모든 행에는 동일한 데이터가 표시되어 값이 중복되는 것처럼 보입니다. 이 문제를 해결하려면 populate() 메서드를 수정하여 데이터 지우기 단계를 건너뛰어 기존 데이터를 보존하고 새 데이터를 테이블 끝에 추가할 수 있습니다.
또는 데이터를 채우기 전에 기존 데이터 필드를 지우는 대신 새 ArrayList를 생성하고 이를 데이터 필드에 할당하는 것을 고려할 수 있습니다. 이렇게 하면 JTable에서 중복 값 문제를 일으키지 않고 올바른 데이터가 유지됩니다.
위 내용은 기본 데이터가 정확할 때 내 JTable에 중복 행이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!