加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 编程开发 > Java > 正文

java – JTable.clearSelection()vs Jtable.getSelectionModel.cl

发布时间:2020-11-17 09:21:54 所属栏目:Java 来源:互联网
导读:我需要取消JTable模型对象中的所有选择. Java提供了这个函数“clearSelection()”,根据我的理解,这就是我所需要的. 但我很困惑为什么可以在JTable对象以及JTable对象的选择模型上调用此函数: 1) mytable.clearSelection(); 2) mytable.getSelectionModel().c

我需要取消JTable模型对象中的所有选择. Java提供了这个函数“clearSelection()”,根据我的理解,这就是我所需要的.

但我很困惑为什么可以在JTable对象以及JTable对象的选择模型上调用此函数:

1) mytable.clearSelection();
 2) mytable.getSelectionModel().clearSelection();

两种方式都有效,但我不明白在什么情况下,SelectionModel的clearSelection()(如2))会有任何意义.据我了解SelectionModels,它们用于决定JTable允许的选择类型.我使用SelectionModel只允许选择一行

//allow only one row to be selected
mytable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

哪种方式在哪种情况下首选?是否有充分的理由不使用方式1?

如果有人对此有一些初学友好的解释,我会很高兴. Thx提前.

解决方法

这是JTable#clearSelection()的实现
public void clearSelection() {
    selectionModel.clearSelection();
    columnModel.getSelectionModel().clearSelection();
}

如您所见,有两个ListSelectionModel被清除,因为您可以选择列和/或行和/或单元格.

来自Oracle教程:

JTable uses a very simple concept of selection,managed as an
intersection of rows and columns. It was not designed to handle fully
independent cell selections.

ListSelectionModel处理选择的所有方面,例如选择哪一行,我们如何选择一些行等等……不仅仅是选择的那种!
更多信息,请参见the Oracle JTable tutorial

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读