gpt4 book ai didi

java - JTable.clearSelection() 与 Jtable.getSelectionModel.clearSelection() - 何时使用什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:53:02 25 4
gpt4 key购买 nike

我需要取消 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 吗?

如果有人对此有一些初学者友好的解释,我会很高兴。提前致谢。

最佳答案

这里是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

关于java - JTable.clearSelection() 与 Jtable.getSelectionModel.clearSelection() - 何时使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com