Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJTableのセルをプログラムから選択する方法|setRowSelectionIntervalの使い方

JTableJComponentクラスのサブクラスであり、複数の行と列に情報を表示するテーブルを作成するために使用されるSwingコンポーネントです。ユーザーがJTableから値を選択するとTableModelEventが発生し、TableModelListenerインターフェースを実装することでそのイベントを処理できます。

通常、JTableの行や列はユーザーがマウスなどで手動に選択しますが、JTableクラスが提供するsetRowSelectionInterval()メソッドとsetColumnSelectionInterval()メソッドを使えば、コードから特定のセル範囲を自動的に選択状態にすることも可能です。

主なメソッドの概要

  • setRowSelectionInterval(int index0, int index1): 指定した開始行から終了行まで(両端を含む)を選択します。
  • setColumnSelectionInterval(int index0, int index1): 指定した開始列から終了列まで(両端を含む)を選択します。

この2つのメソッドを組み合わせることで、行と列の交差する矩形範囲のセルをまとめて選択できます。

サンプルコード

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JTableCellSelectionTest extends JFrame {
    private JTable table;

    public JTableCellSelectionTest() {
        setTitle("JTableCellSelection Test");
        Object[][] data = {{ "Raja", "Java", "Hyderabad"}, {"Vineet", "JavaScript", "Bangalore"},
                           {"Adithya", "Scala", "Chennai"}, {"Jai", "ServiceNow", "Pune"},
                           {"Chaitanya", "Python", "Noida"}, {"Krishna", "AI", "Mumbai"}};

        String columns[] = {"Name", "Technology", "Location"};
        table = new JTable(data, columns);
        add(new JScrollPane(table));

        // 行0〜2を選択
        table.setRowSelectionInterval(0, 2);
        // 列0〜2を選択
        table.setColumnSelectionInterval(0, 2);

        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

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

実行結果

上記のコードを実行すると、テーブルの先頭行から3行目まで、かつすべての列(Name・Technology・Location)にまたがるセル範囲が、アプリ起動直後にあらかじめ選択された状態で表示されます。

JavaでJTableのセルをプログラムから選択する方法|setRowSelectionIntervalの使い方

補足ポイント

  • 単一のセルだけを選択したい場合は、開始インデックスと終了インデックスに同じ値を指定します(例: table.setRowSelectionInterval(1, 1);)。
  • 既存の選択範囲に追加したい場合は、addRowSelectionInterval()addColumnSelectionInterval()を使用します。
  • 選択モードを変更したい場合は、table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);などを設定してください。
  1. JavaのJTableで各列の幅を変更する方法をわかりやすく解説

    Java Swingで表形式のデータを扱う際、デフォルトの列幅では文字が切れてしまったり、レイアウトが崩れたりすることがあります。本記事では、JTableの各列の幅を自由に変更する方法を、基本の特徴からサンプルコードまで詳しく解説します。 JTableとは JTableは、複雑なデータ構造を表示するためのJComponentのサブクラスです。 MVC(Model View Controller)デザインパターンに基づいて設計されており、データを行と列の形式で表示できます。 DefaultTableModelクラスはAbstractTableModelを拡張したクラスで、JTableに対して行

  2. Java SwingのJCheckBoxで一度に1つの項目だけを選択する方法(ButtonGroupの使い方)

    JCheckBoxとは JCheckBoxはJToggleButtonを継承したSwingコンポーネントで、チェック済みか未チェックのいずれかの状態を持つ小さなボックスとして画面に表示されます。 ユーザーがJCheckBoxをクリックすると、チェック状態と未チェック状態が自動的に切り替わります。 チェックボックスの状態が変化すると、ActionListenerやItemListenerが発生し、イベント処理を行うことができます。 isSelected()メソッドを使うと、そのチェックボックスが選択されているかどうかを判定できます。 デフォルトの状態では、複数のチェックボックスを同時に選択す