AbstractTableModel을 사용하여 JTable에서 선택한 행을 효율적으로 가져오기
JTable에서 선택한 행을 검색하는 프로세스는 대규모 데이터 세트를 처리할 때 비효율적일 수 있습니다. , 모든 행을 순차적으로 순회해야 하기 때문입니다. 이 기사에서는 AbstractTableModel 기반 리스너 메커니즘을 사용하는 보다 효율적인 접근 방식을 제시합니다.
문제 설명
행 선택을 위한 첫 번째 열에 JCheckBox가 있는 JTable에서 검색 선택된 행은 확인된 행을 수집하기 위해 모든 행을 반복해야 합니다. 데이터세트가 커지면 이는 바람직하지 않은 접근 방식이 됩니다.
제안 솔루션: TableModel 리스너 구현
이 솔루션에는 JCheckBox 열에 TableModelListener를 추가하는 작업이 포함됩니다. 리스너 클래스 내에서 JCheckBox의 상태가 변경(선택/삭제)될 때마다 selectedRows 배열이 업데이트됩니다. 또한 리스너 클래스 내에서 table.getSelectedRow(..)를 호출하여 선택한 행의 인덱스를 캡처할 수 있습니다.
Is There a Better Way?
제공된 예 TableModel이 Set
구현 세부 정보
CheckModel 클래스는 AbstractTableModel을 확장하고 rowList를 처리하고 검사된 항목을 확인합니다. 설정하여 체크박스 상태 변경에 따라 유지합니다. DisplayPanel 클래스에는 테이블 모델 변경을 수신하고 그에 따라 디스플레이를 업데이트하는 JList가 포함되어 있습니다.
결론
작은 데이터세트의 경우 순차 행 순회 접근 방식이 충분할 수 있지만, 위에 표시된 TableModel 리스너 또는 대체 방법을 사용하면 대규모 데이터 세트를 처리할 때 효율성이 크게 향상됩니다. 이러한 기술을 사용하면 테이블 크기에 관계없이 선택한 행을 효율적으로 검색할 수 있습니다.
위 내용은 대규모 데이터 세트가 있는 JTable에서 선택한 행을 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!