Java Swing サンプル集

Top Page
* JTable 1セルのみ選択
-
・説明1
-

JTableはデフォルトではセル単位ではなく行単位で選択されます。
これをセル単位で選択可能とするためには、主に2通りの方法があります。

まず1つ目の方法がコード例1の手順。

最初の行は、連続して範囲選択を行う場合1つの範囲のみ選択可能とする、という意味です。
連続していないと複数のセルは選択出来なくなります。
デフォルトではMULTI_INTERVAL_SELECTION(複数の範囲選択可能)。

2行目は、行と列の同時選択を許可する、とSunのドキュメントには記載がありますが、これをtrueにすることにより1セル選択が可能となります。
デフォルトはfalse。

3行目はデフォルトtrueなので実際には設定しなくても良いのですが、行選択を許可する、という意味です。
これをfalseとすると、1セルをクリックしただけでも列単位で選択されてしまいます。

最初の行に関しては好みでもありますが、セル単位で選択可能とする方法としては、上記3つをセットで覚えておけば良いと思います。

・コード例1
-

    // 連続範囲を1つだけ選択可能
    jTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    // 行と列の同時選択を許可
    jTable.setCellSelectionEnabled(true);
    // 行選択を許可
    jTable.setRowSelectionAllowed(true);
・説明2
-

2つめの方法は下記コード例2の手順ですが、例1と例2の違いは、1は選択したセルの色が変わるのに対して、2はセルの色が変わらずセル枠が太線になるだけ、という違いがあります。

よりエクセルに近い方は2例の方ですが、まあこれも好みでしょう。
・コード例2
-

    jTable.setCellSelectionEnabled(false);
    jTable.setRowSelectionAllowed(false);
サンプルソース : src_jtable_single_select.zip
サンプルアプリ : sample_jtable_single_select.jar


inserted by FC2 system