Java 将一行移到顶部

Java 将一行移到顶部,java,jtable,Java,Jtable,以下是我在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 我可以想出两种方法: 交换第4行和第3行,第3行和第2行,直到我们到达顶部 将选定行的

以下是我在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
我可以想出两种方法:

  • 交换第4行和第3行,第3行和第2行,直到我们到达顶部
  • 将选定行的SrNo更改为1,增加其上方所有行的SrNo,减少其下方所有行的SrNo,然后按SrNo排序
  • 哪一个是好方法?还是有更好的方法


    (此表绑定到数据库,但这是另一个问题)

    使用表模型,该模型由POJO列表备份,如下所示:

    添加如下方法:

    public void moveToTop(int index){
      MyPojoClas myPojo = myList.remove(index);
      myList.add(0, myPojo);
      fireTableRowsUpdated(0, index);
    }
    

    使用由POJO列表备份的表模型,如下所示:

    添加如下方法:

    public void moveToTop(int index){
      MyPojoClas myPojo = myList.remove(index);
      myList.add(0, myPojo);
      fireTableRowsUpdated(0, index);
    }
    

    DefaultTableModel已支持moveRow(…)方法


    另外,我不知道SrNo是什么,但是如果该值只是行号,那么它不应该是模型的一部分。而是应该作为行标题视图的一部分呈现。可能类似于。

    DefaultTableModel已经支持moveRow(…)方法


    另外,我不知道SrNo是什么,但是如果该值只是行号,那么它不应该是模型的一部分。而是应该作为行标题视图的一部分呈现。可能是这样的。

    很抱歉,我忘了提到,我在使用,使用JDeveloper,并使用将数据绑定到表中。很抱歉,我忘了提到,我在使用,使用JDeveloper,并使用将数据绑定到表中。谢谢……这对我将行移到顶部起到了作用……但是更改顺序呢?从这个到这个。。。我希望D列一直保持有序。。。(即1,2,3…)有什么想法吗?您是否尝试过Rob(camickr)提到的行号表方法来渲染行号?谢谢…这对我将行移到顶部起到了作用…但是更改顺序呢?从这个到这个。。。我希望D列一直保持有序。。。(即1,2,3…)有什么想法吗?您是否尝试过Rob(camickr)提到的行号表方法来呈现行号?