我需要取消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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。