JTable TableRowSorter를 이용한 검색기능 구현

2021. 5. 30. 20:20java

DefaultTableModel model = new DefaultTableModel(data,header) {
public boolean isCellEditable(int rowindex, int mCollndex) {
return false;
}
}; //테이블 모델 선언
JTable table=new JTable(model);

final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);//TableRowSorter 선언, 나중에 리스너 사용을 위한 상수선언.

table.setRowSorter(sorter); // JTable에 RowSorter 설정

final JTextField filterText=new JTextField(); // 리스너 사용을 위한 상수 선언
filterText.setPreferredSize(new Dimension(300,30));
filterP.add(filterText);
JButton filterB=new JButton("검색");
filterB.setPreferredSize(new Dimension(300,30));
filterP.add(filterB);

filterB.addActionListener(new ActionListener() { //버튼에 익명 액션리스너 구현

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
 String text = filterText.getText(); // 텍스트 필드의 데이터를 가져옴
        if (text.length() == 0) {
          sorter.setRowFilter(null); // 데이터가 없으면 초기화
        } else {
          sorter.setRowFilter(RowFilter.regexFilter(text)); // 데이터가 있으면 해당 내용으로 필터 설정, 즉 해당하는 열만 검색됨.
        }
}
});

실행결과 

'java' 카테고리의 다른 글

JTable 수정불가, 이동불가, 생성 후 열추가 다루기  (0) 2021.05.30