Swing/ColumnSelection の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/ColumnSelection へ行く。
- Swing/ColumnSelection の差分を削除
--- category: swing folder: ColumnSelection title: JTableHeaderをクリックしてそのColumnのセルを全選択 tags: [JTable, JTableHeader, MouseListener] author: aterai pubdate: 2005-04-04T03:22:43+09:00 description: JTableHeaderをクリックしたとき、そのColumn以下にあるセルを全選択します。 image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTJrC8DyhI/AAAAAAAAAUw/SO1wMAudBiE/s800/ColumnSelection.png --- * 概要 [#summary] `JTableHeader`をクリックしたとき、その`Column`以下にあるセルを全選択します。 #download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTJrC8DyhI/AAAAAAAAAUw/SO1wMAudBiE/s800/ColumnSelection.png) * サンプルコード [#sourcecode] #code(link){{ JTable table = new JTable(model); table.setCellSelectionEnabled(true); JTableHeader header = table.getTableHeader(); header.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { if (!check.isSelected()) { return; } if (table.isEditing()) { table.getCellEditor().stopCellEditing(); } int col = header.columnAtPoint(e.getPoint()); table.changeSelection(0, col, false, false); table.changeSelection(table.getRowCount() - 1, col, false, true); } }); }} * 解説 [#explanation] 上記のサンプルでは、`JTableHeader`に`MouseListener`を追加し、`JTableHeader#columnAtPoint(Point)`メソッドを使ってマウスでクリックされた位置にある`TableColumn`を取得しています。 `TableColumn`全体の選択は、`changeSelection`メソッドを`2`回使用することで実現しています。 - `TableColumn`全体の選択は`changeSelection`メソッドを`2`回使用することで実現している * 参考リンク [#reference] - [[JTableに行ヘッダを追加>Swing/TableRowHeader]] -- 行ヘッダをクリックして行の全選択 * コメント [#comment] #comment - メモ: `2008-03-11`に[[JTableのセルにあるフォーカスを解除>Swing/AnchorSelection]]から移動でこのページを作成。 -- &user(aterai); &new{2013-02-20 (水) 15:21:27}; #comment