Swing/ChangeSelection のバックアップの現在との差分(No.3)
TITLE:JTableの選択状態を変更
Posted by terai at 2007-06-25
JTableの選択状態を変更
JTableの選択状態をchangeSelectionメソッドを使って変更します。- category: swing folder: ChangeSelection title: JTableの選択状態を変更 tags: [JTable] author: aterai pubdate: 2007-06-25T18:03:27+09:00 description: JTableの選択状態をchangeSelectionメソッドを使って変更します。 image:
概要
JTable
の選択状態をchangeSelection
メソッドを使って変更します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
#screenshot
サンプルコード
#spanend
#spandel
box.add(new JButton(new AbstractAction("changeSelection") {
#spanend
public void actionPerformed(ActionEvent e) {
int row = -1, col = -1;
try{
row = Integer.parseInt(rowField.getText().trim());
col = Integer.parseInt(colField.getText().trim());
}catch(Exception ex) {
ex.printStackTrace();
}
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
p.add(new JButton(new AbstractAction("changeSelection") {
#spanend
@Override public void actionPerformed(ActionEvent e) {
int row = Integer.parseInt(rowField.getValue().toString());
int col = Integer.parseInt(colField.getValue().toString());
table.changeSelection(row, col, toggle.isSelected(), extend.isSelected());
//table.changeSelection(row, table.convertColumnIndexToModel(col),
// toggle.isSelected(), extend.isSelected());
// table.changeSelection(
// row, table.convertColumnIndexToModel(col),
// toggle.isSelected(), extend.isSelected());
table.requestFocusInWindow();
table.repaint();
}
}));
解説
JTable#changeSelectionは、toggle と extend の 2つのフラグで、セルの選択状態を以下のようにいろいろ変更することができます(http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JTable.html#changeSelection(int,%20int,%20boolean,%20boolean) よりそのまま引用)。- toggle:false、extend:false
- 既存の選択をクリアし、新しいセルが確実に選択されるようにする
- toggle:false、extend:true
- 既存の選択をアンカーから指定のセルまで拡張して、ほかのすべての選択をクリアする
- toggle:true、extend:false
- 指定されたセルが選択されている場合、そのセルを選択解除する。選択されていない場合、そのセルを選択する
- toggle:true、extend:true
- アンカーの選択状態を、そのアンカーと指定されたセル間のすべてのセルに適用する。
解説
JTable#changeSelection(...)
メソッドを使用すればtoggle
とextend
の2
つのフラグでセルの選択状態を以下のように変更可能です。
上記のサンプルは、toggle、extendの状態を変えて、実際に選択状態の変化をテストすることができます。アンカーや選択状態、列の入れ替えなどを行ってchangeSelectionによる変更の確認をしてみてください。
-
toggle
:false
、extend
:false
- 既存の選択をクリアし新しいセルを確実に選択する
-
toggle
:false
、extend
:true
- 既存の選択をアンカーから指定のセルまで拡張してほかのすべての選択をクリアする
-
toggle
:true
、extend
:false
- 指定されたセルが選択されている場合そのセルを選択解除する。選択されていない場合そのセルを選択する
-
toggle
:true
、extend
:true
- アンカーの選択状態をそのアンカーと指定されたセル間のすべてのセルに適用する
コメント
- -
-
toggle
、extend
の状態を変えて実際に選択状態の変化をテスト可能 - アンカーや選択状態、列の入れ替えなどを行って
changeSelection(...)
による変更もテスト可能
参考リンク
- JTable#changeSelection(int, int, boolean, boolean) (Java Platform SE 8)
- この記事の内容は、ほぼ上記の
API
ドキュメントからの引用
- この記事の内容は、ほぼ上記の