JavaのJTableで選択した行を削除する方法(removeRow()の使い方)
JTableは、複雑なデータ構造を画面に表示するためのJComponentクラスのサブクラスです。JTableはMVC(Model View Controller)設計パターンに基づいており、データを行と列の形式で表示できます。また、TableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener、RowSorterListenerといった各種リスナーインターフェースにも対応しています。
JTableから選択されている行を削除するには、DefaultTableModelクラスが提供するremoveRow()メソッドを使用します。このメソッドは、指定されたインデックスの行をテーブルモデルから取り除き、変更内容を登録済みのリスナーに自動的に通知します。
構文
public void removeRow(int row)
- row:削除する行のインデックス(0から開始)
サンプルコード
以下の例では、「Remove」ボタンをクリックすると、JTableで現在選択されている行が削除されます。行が選択されていない場合、getSelectedRow()は -1 を返すため、削除処理を実行する前に必ず選択状態をチェックしている点に注目してください。
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();
}
}
実行結果
プログラムを実行すると、IDと名前を持つテーブルが表示されます。任意の行を選択して「Remove」ボタンを押すと、その行がモデルから削除され、削除完了を知らせるダイアログが表示されます。


-
JavaのJMenuからJTabbedPaneに新しいタブを追加する方法
JTabbedPaneとはJTabbedPaneは、JComponentクラスを継承したSwingコンポーネントの一つで、複数のパネルをタブ形式で簡単に切り替えられるようにするUI部品です。各タブには1つのコンポーネントが関連付けられており、そのタブが選択されると対応するコンポーネントが表示されます。JTabbedPaneは、タブが選択されたタイミングでChangeListenerインターフェースを通じてイベントを発生させることができます。JTabbedPaneの主なメソッドには、add()、addTab()、fireStateChanged()、createChangeListener()、
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー