用Swing的童鞋都知道,JTable在单击某一列的首部时只能达成排序的效果,而不能以此选择整列的内容。而用惯Excel表格的童鞋是否希望JTable能按列选择呢?下面就做一个可以按列选择的JTable。
要向JTable中添加按列选择功能,很简单,只需完成下面两个工作即可:
- 修改选择方式。
- 添加一个鼠标监听事件MouseListener。
先看看代码:
只实现了JTable 中常用的构造方法,其他类推。JTable默认的是按行选择,我们用17、19行代码实现按列选择并屏蔽按行选择。接下来就是要捕获对首部的鼠标单击事件。JTableHeader不含addActionListener()方法,只能为其添加一个MouseLinstener监听器了并重写它的mouseReleased()方法。
25行判断Shift键是否被按下,按下则是希望多选,把这一列添加到已选内容中;若未按下,则取消所有选择,重新选。27行获得当前单击的是哪一列。28行获得当前列搞定。
测试类如下:
效果如图所示: