선택한 행 추적을 사용하여 JTable에서 선택한 행 가져오기
문제:
JTable에서 선택한 행을 효율적으로 가져옵니다. 행 선택을 위한 첫 번째 열에 JCheckBox가 있는 JTable입니다. 행 수가 많으면 순차 순회가 비효율적입니다.
기존 접근 방식:
모든 행을 순차적으로 반복하여 선택한 행을 가져옵니다. 이 접근 방식은 수천 개의 행을 처리할 때 문제가 됩니다.
제안 접근 방식:
모델 기반 추적:
코드 예:
import javax.swing.table.AbstractTableModel; import java.util.Set; import java.util.TreeSet; public class CheckModel extends AbstractTableModel { // ... private Set<Integer> checked = new TreeSet<>(); // ... @Override public void setValueAt(Object aValue, int row, int col) { boolean b = (Boolean) aValue; rowList.set(row, b); if (b) { checked.add(row); } else { checked.remove(row); } fireTableRowsUpdated(row, row); } }
추가 최적화:
모델 기반 접근 방식의 이점:
위 내용은 JCheckBox 행 선택을 사용하여 JTable에서 선택한 행을 효율적으로 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!