Swing/ColumnSelection のバックアップの現在との差分(No.10)
- 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:
概要
JTableHeader
をクリックしたとき、そのColumn
以下にあるセルを全選択します。
Screenshot
Advertisement
サンプルコード
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);
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTableHeader
にMouseListener
を追加し、JTableHeader#columnAtPoint(Point)
メソッドを使って、マウスでクリックされた位置にあるColumn
を取得しています。
上記のサンプルでは、JTableHeader
にMouseListener
を追加し、JTableHeader#columnAtPoint(Point)
メソッドを使ってマウスでクリックされた位置にあるTableColumn
を取得しています。
Column
全体の選択は、changeSelection
メソッドを2
回使用することで実現しています。
-
TableColumn
全体の選択はchangeSelection
メソッドを2
回使用することで実現している
参考リンク
- JTableに行ヘッダを追加
- 行ヘッダをクリックして行の全選択