JTableの行を追加、削除
Total: 42642
, Today: 1
, Yesterday: 4
Posted by aterai at
Last-modified:
概要
JTable
への行追加と、選択行の削除をJPopupMenu
から実行します。
Screenshot
Advertisement
サンプルコード
private final DefaultTableModel model = new DefaultTableModel();
private final JTable table;
private void createActionPerformed(ActionEvent e) {
int rc = model.getRowCount();
model.addRow(new Object[] {rc, "New name", ""});
// 追加された最終行までスクロール
table.scrollRectToVisible(table.getCellRect(rc, 0, true));
}
private void deleteActionPerformed(ActionEvent e) {
int[] selection = table.getSelectedRows();
for (int i = selection.length - 1; i >= 0; i--) {
model.removeRow(table.convertRowIndexToModel(selection[i]));
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、ポップアップメニューを使用して行の追加と削除を行っています。
- 追加
DefaultTableModel
のaddRow
メソッドを使用しオブジェクトの配列を行として追加- 追加された行が表示されるように
JTable#getCellRect(...)
で行の領域を取得しJTable#scrollRectToVisible(...)
でスクロール
- 削除
- 複数行の削除に対応するため
index
の大きい方から削除する - 行がソートされている場合を考慮して
JTable#convertRowIndexToModel(int)
メソッドでviewIndex
をmodelIndex
に変換してからDefaultTableModel#removeRow(int modelIndex)
を使って削除
- 複数行の削除に対応するため