JavaでJTableから行を削除する方法
JavaでのJTableの行の削除は、JTableのテンプレートによって異なります。JTableはデフォルトで DefaultTableModel です。ただし、独自の Table Model.delete in DefaultTableModel
DefaultTableModel はデータを Vector 配列に格納し、romoveRow(int line).
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}};
文字列[] title = {"c1", "c2", "c3"};
public JTableExample(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
DefaultTableModel dtm = new DefaultTableModel(data, title);
table.setModel(dtm);
this.getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
//行を削除 2
((DefaultTableModel)table.getModel()).removeRow(1);
pack();
}
public static void main(String[] args) {
new JTableExample();
}
}
以下を継承する独自のモデルを作成した場合 AbstractTableModelの場合は、removeRowです。この実装は、データを格納するために実装した構造の性質によって異なります.
たとえば、ArrayList JTable モデル を使用すると、次のようになります:
References:
Oracleドキュメント: DefaultableModel
Developpez.com: AbstractTableModel
okipa.be: JTable
たとえば、ArrayList JTable モデル を使用すると、次のようになります:
class Model extends AbstractTableModel{JTable HashMap Model:
List<オブジェクトです>data = new ArrayListです<オブジェクトです>();
public void removeRow(int line){
this.data.remove(line);
}
}
class Model extends AbstractTableModel{また、要素が動的に格納されていない 2 次元配列を使用している場合は、配列から行を削除する関数がないため、問題が発生します。したがって、(n-k)*m(k;
HashMap<整数型、オブジェクト[]>data = new HashMapです<整数型、オブジェクト[]>();
public void removeRow(int line){
this.data.remove(line);
}
}
References:
Oracleドキュメント: DefaultableModel
Developpez.com: AbstractTableModel
okipa.be: JTable