Java에서 JTable에서 라인을 삭제하는 방법

Java에서 JTable의 행 삭제는 JTable의 템플릿에 따라 다릅니다. JTable은 기본적으로   DefaultTableModel입니다. 그러나 사용자 고유의 Table Model.

DefaultTableModel><2DefaultTableModel은 데이터를 Vector 배열에 저장하므로 romoveRow(int 줄).

import javax.swing.JFrame; 
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;

public class JTableExample extends JFrame{

Object[][] data = {{9,8,7,6},{7,6,5},{6,5,4}};
문자열[] 제목 = {"c1", "c2", "c3"};

public JTableExample(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);

DefaultTableModel dtm = 새로운 DefaultTableModel(데이터, 제목);
table.setModel(dtm);
this.getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
//행 삭제 2
((DefaultTableModel)table.getModel()).removeRow(1);
팩();
}

public static void main(String[] args) {
new JTableExample();
}
}

Output
jtable defaulttablemodel
전면 < / td >< / tr>< / tbody >< / table >
jtable defaulttablemodel에서 행 삭제
이후

다음에서 삭제  AbstractTableModel

에서 상속되는 모델을 직접 만든 경우  AbstractTableModel removeRow입니다. 이 구현은 data.

예를 들어 ArrayList JTable 모델을 사용하는 경우 다음과 같이 표시됩니다.

class 모델은 AbstractTableModel{

List를 확장합니다< 개체입니다> 데이터 = 새로운 ArrayList< 개체입니다> ();
public void removeRow(int line){
this.data.remove(line);
}
}
JTable HashMap 모델:

class 모델은 AbstractTableModel{

HashMap을 확장합니다< 정수, Object[]> 데이터 = 새로운 HashMap< 정수, Object[]> ();
public void removeRow(int line){
this.data.remove(line);
}
}
요소가 동적으로 저장되지 않은 2차원 배열을 사용하는 경우 배열에서 행을 제거하는 함수가 없기 때문에 문제가 발생합니다. 따라서 (n-k)*m(k; line index) 모든 요소를 오프셋하는 데 필요한 시간 및 작업 수로 인해 발생합니다.

References:
Oracle 문서: DefaultableModel
Developpez.com: AbstractTableModel
okipa.be: JTable

Commentaires (12)

Connectez-vous pour commenter

Rejoignez la discussion et partagez vos connaissances avec la communauté

JD
Jean Dupont Il y a 2 heures

Excellent tutoriel !

👍 12 Répondre Signaler
CodeurJava ✓ Auteur • Il y a 1 heure

N'hésitez pas si vous avez des questions.

© 2025 CodeurJava. Tous droits réservés.