我需要取消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提前.
我想知道用另一个较小的std :: vector替换(覆盖)给定std :: vector"input"的一部分的正确方法是什么?我确实保持原始矢量的其余部分保持不变.此外,我不需要打扰原始矢量中的内容,之后我不再需要保留较小的矢量.
说我有这个:
std::vector<int> input = { 0, 0, 1, 1, 2, 22, 3, 33, 99 };
std::vector<int> a = { 1, 2, 3 };
std::vector<int> b = { 4, 5, 6, 7, 8 };
Run Code Online (Sandbox Code Playgroud)
我希望实现这一目标:
input = { 1, 2, 3, 4, 5, 6, 7, 8, 99}
Run Code Online (Sandbox Code Playgroud)
做正确的方法是什么?我想到了类似的东西
input.replace(input.beginn(), input.beginn()+a.size(), a);
Run Code Online (Sandbox Code Playgroud)
//中间输入看起来像这样:input = {1,2,3,1,2,22,3,33,99};
input.replace(input.beginn()+a.size(), input.beginn()+a.size()+b.size(), b);
Run Code Online (Sandbox Code Playgroud)
必须有一个标准的方法来做到这一点,不是吗?到目前为止,我对此的看法如下:
std :: vector :: push_back不会替换但是放大输入 - >不是我想要的
std :: vector :: insert也创建新元素并输入输入向量,但我确定向量a.size()+ b.size()<= …
假设我有一个字节类型的变量 tmp 并包含零和一。我想通过设置显式值(例如 1)来替换 tmp 中第五个位置的值。
我想知道什么是替换类型为“Bytes”的对象(tmp)中各个位的干净方法。我想直接设置。我的尝试不起作用。如果能帮助理解我的方法中的问题,我们将不胜感激。
print(tmp) # -> b'00101001'
print(type(tmp)) # -> <class 'bytes'>
tmp[3] = 1 # Expected b'00111001' but actually got TypeError: 'bytes' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
有没有像set_bit_in(tmp,position,bit_value)这样的函数?