Sim*_*eon 6 java swing jtable selectionmodel selection
我需要取消JTable模型对象中的所有选择.Java提供了这个函数"clearSelection()",根据我的理解,这就是我所需要的.
但我很困惑为什么可以在JTable对象以及JTable对象的选择模型上调用此函数:
1) mytable.clearSelection();
2) mytable.getSelectionModel().clearSelection();
Run Code Online (Sandbox Code Playgroud)
两种方式都有效,但我不明白在什么情况下,SelectionModel的clearSelection()(如2))会有任何意义.据我了解SelectionModels,它们用于决定JTable允许的选择类型.我使用SelectionModel只允许选择一行
//allow only one row to be selected
mytable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
Run Code Online (Sandbox Code Playgroud)
哪种方式在哪种情况下首选?是否有充分的理由不使用方式1?
如果有人对此有一些初学友好的解释,我会很高兴.Thx提前.
这是执行 JTable#clearSelection()
public void clearSelection() {
selectionModel.clearSelection();
columnModel.getSelectionModel().clearSelection();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,有两个ListSelectionModel被清除,因为您可以选择列和/或行和/或单元格.
来自Oracle教程:
JTable使用一个非常简单的选择概念,作为行和列的交集进行管理.它不是为处理完全独立的细胞选择而设计的.
一个ListSelectionModel手柄选择的所有方面,如被选中的行,我们怎么能选择一些行,等等......不仅种类选择的!Oracle JTable教程
中的更多信息
通常,当您看到两个类似的方法时,因为该表将为您调用SelectionModel.clearSelection()方法.所以表方法是一种方便的方法.
在这种情况下,实际代码是:
public void clearSelection()
{
selectionModel.clearSelection();
columnModel.getSelectionModel().clearSelection();
}
Run Code Online (Sandbox Code Playgroud)
因此,行和列选择模型都被清除.
| 归档时间: |
|
| 查看次数: |
10395 次 |
| 最近记录: |