JTabel选择表格事件监听时,用鼠标点击一次,会出现两次事件的原因。

本文详细介绍了表格组件中各种交互事件的实现方法,包括行选择、列选择及单元格响应等事件的监听与处理,特别关注了不同输入方式(如鼠标与键盘)下事件触发的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。选择某一行(当选择这一行时,需要产生某种事件)

当用鼠标对表格进行选取,在响应行选取变化事件(ListSelectionListener)时,鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。前者的事件属性中getValueIsAdjusting()=true,后者是false。因此,可以通过判断getValueIsAdjusting()来区别鼠标按下和释放,进行不同的操作。

    而用键盘的上下键选取时,只有一次事件响应。

table.getSelectionModel().addListSelectionListener(new ListSelectionListener()
            {
                public void valueChanged(ListSelectionEvent e)
                   {
                    //do you what to do                        
             }});


 

2。选择某一列(当选择这一列时,需要产生某种事件)[ListSelectionListener]

table.getColumnModel().addColumnModelListener(
                new TableColumnModelListener() {
                    public void columnAdded(TableColumnModelEvent e) {}
                    public void columnMarginChanged(ChangeEvent e) {
                     }
                    public void columnMoved(TableColumnModelEvent e) {
                     }
                    public void columnRemoved(TableColumnModelEvent e) {
                     }
                    public void columnSelectionChanged(ListSelectionEvent e) {}
);

3.单元格响应事件[TableModelListener此细粒度通知告知侦听器单元格、行或列的哪些具体范围发生了更改]

 

table.getModel().addTableModelListener(new TableModelListener() ... {
            
public void tableChanged(TableModelEvent e) ...{});


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值