개요
JTable은 복잡한 데이터 구조를 화면에 표시하기 위해 사용되는 JComponent 클래스의 하위 클래스입니다. JTable 컴포넌트는 MVC(Model View Controller) 디자인 패턴을 따르며, 데이터를 행(row)과 열(column) 형태로 깔끔하게 표시할 수 있습니다. 또한 JTable은 TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener, RowSorterListener 등 다양한 리스너 인터페이스를 생성하여 테이블에서 발생하는 이벤트를 처리할 수 있습니다.
JTable에서 사용자가 선택한 행을 삭제하려면 DefaultTableModel 클래스가 제공하는 removeRow() 메서드를 사용하면 됩니다.
문법(Syntax)
public void removeRow(int row)
매개변수 row에는 삭제하고자 하는 행의 인덱스를 전달합니다. 인덱스는 0부터 시작한다는 점에 유의하세요.
예제(Example)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class RemoveSelectedRowTest extends JFrame {
private JTable table;
private DefaultTableModel model;
private Object[][] data;
private String[] columnNames;
private JButton button;
public RemoveSelectedRowTest() {
setTitle("RemoveSelectedRow Test");
data = new Object[][] {{"101", "Ramesh"}, {"102", "Adithya"}, {"103", "Jai"}, {"104", "Sai"}};
columnNames = new String[] {"ID", "Name"};
model = new DefaultTableModel(data, columnNames);
table = new JTable(model);
// 한 번에 하나의 행만 선택 가능하도록 설정
table.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
button = new JButton("Remove");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
// 먼저 선택된 행이 있는지 확인
if(table.getSelectedRow() != -1) {
// 모델에서 선택된 행 삭제
model.removeRow(table.getSelectedRow());
JOptionPane.showMessageDialog(null, "선택한 행이 성공적으로 삭제되었습니다");
}
}
});
add(new JScrollPane(table), BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) {
new RemoveSelectedRowTest();
}
}코드 설명
getSelectedRow(): 현재 선택된 행의 인덱스를 반환하며, 아무 행도 선택되지 않았다면 -1을 반환합니다. 따라서 삭제 전 반드시 이 값이 -1이 아닌지 확인해야 합니다.removeRow(table.getSelectedRow()): 테이블 모델에서 선택된 행을 실제로 제거합니다. 모델이 변경되면 JTable 화면도 자동으로 갱신됩니다.ListSelectionModel.SINGLE_SELECTION: 사용자가 한 번에 하나의 행만 선택할 수 있도록 선택 모드를 제한합니다.
실행 결과(Output)
프로그램을 실행하면 ID와 Name 두 개의 열로 구성된 테이블이 표시됩니다.

행을 하나 선택한 뒤 Remove 버튼을 클릭하면 해당 행이 모델에서 삭제되고, 성공 메시지가 담긴 대화상자가 나타납니다.
