만자의 개발일지

[Java/Swing] JTable에 RowSorter 달아주기 본문

Java/Swing

[Java/Swing] JTable에 RowSorter 달아주기

박만자 2021. 2. 23. 18:38
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableSorting extends JFrame{
	private DefaultTableModel model;
	private JTable table;
	private JScrollPane scrollPane;
	
	
	public TableSorting() {
		setSize(400,300);
		model = new DefaultTableModel(new Object[][] {{"A",1},{"B",2},{"C",3}},"Eng,Num".split(","));
		table = new JTable(model);
		table.setAutoCreateRowSorter(true);
		scrollPane = new JScrollPane(table);
		
		add(scrollPane);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
	}
	
	public static void main(String[] args) {
		new TableSorting().setVisible(true);
	}

}

 

일단 JFrame을 상속받고 DefaultTableModel을 사용해서 Table 안에 들어갈 값들을 담아준다.

DefaultTableModel((Object[][] data, Object[] columnNames) 첫번째 매게 변수는 들어갈 값, 두번째는 컬럼명을 넣어주면 된다.

model을 table 생성자 인자로 전달해주고 table.setAutoCreateRowSorter(true)를 해준다.

setAutoCreateRowSorter(boolean autoCreateRowSorter)는 매게변수로 boolean 값을 받는데 true를 해주면 모든 컬럼에 자동적으로 RowSorter을 생성해준다.

그다음에 JScrollPane 생성자 인자로 table을 전달해주고 add(Component comp) 메서드를 통해서 frame에 추가해준다.

 

setDefaultCloseOperation(EXIT_ON_CLOSE) 는 X버튼을 눌렀을때 프로그램을 종료시켜준다.

setLocationRelativeTo(null) 는 프로그램을 실행시켰을때 화면이 가운데로 뜨게 해준다.

 

실행시켰을 때
Eng를 클릭했을 때
Num을 클릭했을 때

 

Comments