TableModelEvent与ListSelectionEvent的用法

1.TableModelEvent

主要反应的事件是表格行,列的增加或减少,表格中数据的变化。

用于通知侦听器某一表模型已发生更改。模型事件描述 TableModel 的更改,并且对行和列的所有引用都在该模型的坐标系统中。可以根据构造方法中使用的参数,用 TableModelevent 指定以下更改类型:

TableModelEvent(source); // The data, ie. all rows changed
TableModelEvent(source, HEADER_ROW); // Structure change, reallocate TableColumns
TableModelEvent(source, 1); // Row 1 changed
TableModelEvent(source, 3, 6); // Rows 3 to 6 inclusive changed
TableModelEvent(source, 2, 2, 6); // Cell at (2, 6) changed
TableModelEvent(source, 3, 6, ALL_COLUMNS, INSERT); // Rows (3, 6) were inserted
TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // Rows (3, 6) were deleted

1.1 TableModelEvent的用法

 table.getModel().addTableModelListener(new TableModelListener() {

                    @Override
                    public void tableChanged(TableModelEvent e) {
                        int count = table.getSelectedRowCount();
                        setEnableWhenTableChanged(count);
                    }
                });

2.ListSelectionEvent

主要反应的是用户选择的表格的行索引的变化。

表现选择中更改的特征的事件。该更改被限定于单个闭区间。该范围中至少一个索引的选择将要更改。合适的 ListSelectionModel 实现将使该范围尽可能的小。ListSelectionListeners 通常将查询事件源,以获得每个可能更改行的新选定状态。

2.1 ListSelectionModel

ListSelectionModel是ListSelectionEvent的事件源。

其中的setValueIsAdjusting方法
void setValueIsAdjusting(boolean valueIsAdjusting):

设置 valueIsAdjusting 属性,指示即将进行的选择更改是否应该被视为单个更改的一部分。此属性的值用于初始化生成 ListSelectionEvent 的 valueIsAdjusting 属性。

例如,如果选择被更新以响应一个用户的拖动,那么在拖动开始时,此属性被设置为 true;在拖动结束时被设置为 false。在拖动期间,侦听器接收 valueIsAdjusting 属性设置为 true 的事件。在拖动的最后,当更改终止时,侦听器接收一个值设置为 false 的事件。如果只在更改已终止时希望更新,则侦听器可以使用此模式。

将此属性设置为 true 将开始一系列将被视为单个更改一部分的更改。当该属性更改回 false 时,发送一个表现整个选择更改特征的事件(如果有),该事件的 valueIsAdjusting 属性设置为 false。

2.2 ListSelectionEvent的用法

其中涉及到 e.getValueIsAdjusting()

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

                    @Override
                    public void valueChanged(ListSelectionEvent e) {
                        if ( e.getValueIsAdjusting()) {
                            return;
                        }
                        int count = table.getSelectedRowCount();
                        setEnableWhenTableChanged(count);
                    }
                });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值