将一行移至顶部
这是我在 jTable 中的数据的外观:
SrNo Name LName
1 A B
2 B C
3 D E
4 F G
现在,当我单击第 4 行,然后单击“移至顶部”按钮时,该表应如下所示,
SrNo Name LName
1 F G
2 A B
3 B C
4 D E
我可以想到两种方法:
- 交换(仅 Name 和 LName 的内容)行4 与第 3 行,第 3 行与第 2 行,这样做直到我们到达顶部。
- 将所选行的SrNo更改为1,增加其上方所有行的SrNo,减少其下方所有行的SrNo,并按SrNo排序。
哪个是好方法?或者有什么更好的方法吗?
(这个表是绑定数据库的,但是又是一个问题)
Here is how my data in jTable looks:
SrNo Name LName
1 A B
2 B C
3 D E
4 F G
now when I click row 4, and click a button "Move to TOP", the table should look like this,
SrNo Name LName
1 F G
2 A B
3 B C
4 D E
I could think of two approaches:
- Swap(just content of Name and LName) row 4 with row 3, row 3 with row 2, do this till we reach to top.
- Change the SrNo of the row selected to 1, increase SrNo of all the rows above it, decrease the SrNo of all the rows below it and sort by SrNo.
Which is good approach? Or is there any better approach?
(This table is binded to database, but it is another problem)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
DefaultTableModel 已经支持 moveRow(...) 方法。
另外,我不知道 SrNo 是什么,但如果该值只是行号,那么它不应该是模型的一部分。相反,应该将其呈现为行标题视图的一部分。也许类似于行号表。
The DefaultTableModel already supports a moveRow(...) method.
Also, I have no idea what the SrNo is, but if the value is just the row number then it should not be part of the model. Instead is should be rendered as part of the row header view. Maybe something like the Row Number Table.
使用表模型,该模型由 POJO 列表支持,如下所示:
http://puces-samples.svn.sourceforge.net/viewvc/puces-samples /trunk/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision=2&view=markup
添加如下方法:
Use a table model, which is backed up by a list of POJOs such as this:
http://puces-samples.svn.sourceforge.net/viewvc/puces-samples/trunk/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision=2&view=markup
Add a method like this: