JTableの列に右揃えを設定する方法


  1. TableColumnModelオブジェクトを取得します。これは、JTableの列モデルを管理するオブジェクトです。通常、JTableのgetColumnModel()メソッドを使用して取得できます。

  2. 右揃えを設定したい列のインデックスを特定します。通常、getColumn()メソッドを使用して列のインデックスを取得できます。

  3. TableColumnオブジェクトを取得します。これは、指定した列のプロパティを管理するオブジェクトです。通常、TableColumnModelのgetColumn()メソッドを使用して取得できます。

  4. DefaultTableCellRendererクラスのオブジェクトを作成します。これは、セルの描画をカスタマイズするためのクラスです。

  5. DefaultTableCellRendererオブジェクトのsetHorizontalAlignment()メソッドを使用して、右揃えを設定します。引数としてSwingConstantsクラスのRIGHTフィールドを指定します。

  6. TableColumnオブジェクトのsetCellRenderer()メソッドを使用して、作成したDefaultTableCellRendererオブジェクトをセルのレンダラーとして設定します。

以下に、上記の手順を反映したコード例を示します。

import javax.swing.*;
import javax.swing.table.*;
public class RightAlignExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("JTable Right Align Column");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // サンプルのデータ
        Object[][] data = {
            {"John", "Doe", 30},
            {"Jane", "Smith", 25},
            {"Bob", "Johnson", 35}
        };
        // サンプルの列名
        String[] columnNames = {"First Name", "Last Name", "Age"};
        // テーブルモデルの作成
        DefaultTableModel model = new DefaultTableModel(data, columnNames);
        // JTableの作成
        JTable table = new JTable(model);

        // 列モデルの取得
        TableColumnModel columnModel = table.getColumnModel();

        // 右揃えを設定したい列のインデックス
        int columnIndex = 2; // 例としてAge列を指定

        // TableColumnオブジェクトの取得
        TableColumn column = columnModel.getColumn(columnIndex);

        // セルのレンダラーを作成して右揃えを設定
        DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
        renderer.setHorizontalAlignment(SwingConstants.RIGHT);
        column.setCellRenderer(renderer);

        // JTableをフレームに追加
        frame.add(new JScrollPane(table));

        // フレームのサイズ調整と表示
        frame.pack();
        frame.setVisible(true);
    }
}

この例では、JTableの"Age"列が右揃えで表示されます。必要に応じて、columnIndexの値を変更して他の列にも同様の設定を適用できます。

なお、このコード例はSwingを使用したデスクトップアプリケーションの例です。