Swing/ColumnSelection のバックアップ差分(No.5)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/ColumnSelection へ行く。
- 1 (2008-03-11 (火) 15:42:16)
- 2 (2012-06-28 (木) 02:07:57)
- 3 (2013-02-20 (水) 13:41:20)
- 4 (2013-02-20 (水) 15:19:51)
- 5 (2013-03-30 (土) 21:16:15)
- 6 (2014-09-14 (日) 22:04:33)
- 7 (2014-10-19 (日) 19:05:20)
- 8 (2015-11-12 (木) 22:01:06)
- 9 (2017-05-10 (水) 15:58:47)
- 10 (2018-05-01 (火) 21:13:13)
- 11 (2020-04-24 (金) 18:34:11)
- 12 (2021-10-26 (火) 23:59:10)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JTableHeaderをクリックしてそのColumnのセルを全選択 #navi(../) #tags() RIGHT:Posted by &author(aterai); at 2008-03-11 RIGHT:Posted by &author(aterai); at 2005-04-04 *JTableHeaderをクリックしてそのColumnのセルを全選択 [#e735902b] JTableHeaderをクリックしたとき、そのColumn以下にあるセルを全選択します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh4.ggpht.com/_9Z4BYR88imo/TQTJrC8DyhI/AAAAAAAAAUw/SO1wMAudBiE/s800/ColumnSelection.png) **サンプルコード [#va7d85c3] #code(link){{ table = new JTable(model) { private final Color evenColor = new Color(250, 250, 250); @Override public Component prepareRenderer(TableCellRenderer tcr, int row, int column) { Component c = super.prepareRenderer(tcr, row, column); if(isCellSelected(row, column)) { c.setForeground(getSelectionForeground()); c.setBackground(getSelectionBackground()); }else{ c.setForeground(getForeground()); c.setBackground((row%2==0)?evenColor:getBackground()); } return c; } }; table.setCellSelectionEnabled(true); final 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); } }); }} **解説 [#fe0efc44] 上記のサンプルでは、JTableHeaderにマウスリスナーを追加し、JTableHeader#columnAtPoint(Point)メソッドを使って、クリックされたColumnを取得するようになっています。 Column全体の選択は、changeSelectionメソッドを二回使用することで行っています。 **参考リンク [#b7494229] -[[JTableに行ヘッダを追加>Swing/TableRowHeader]] --行ヘッダをクリックして行の全選択 **コメント [#j69c8557] - メモ: ``2008-03-11``に[[JTableのセルにあるフォーカスを解除>Swing/AnchorSelection]]から移動でこのページを作成。 -- [[aterai]] &new{2013-02-20 (水) 15:21:27}; #comment