最近经常遇到通过按钮移动表格中的行对象,百度了一下好像没看到有直接操作行的方法,只看到了移动列的方法table.moveColumn(arg0, arg1),所以自己写了一个移动行的方法
解决思路:获取选中行的对象的单元格的值,删除选中行对象,在重新插入一行
往上移动一行的代码如下:
/** * 选中行往上移动一行 * @author liunan * @param table 表格对象 * @param model 表格模型对象 * @param columnCount 表格的列数一共有多少列 * */ public static void moveUpRow(JTable table,DefaultTableModel model,int columnCount) { int row = table.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(null, "请选中一行进行上移!", "提示", JOptionPane.INFORMATION_MESSAGE); } else if(row==0){ JOptionPane.showMessageDialog(null,"当前选中行已经在最顶层!", "提示", JOptionPane.INFORMATION_MESSAGE); }else { Object[] obj=new Object[columnCount]; for (int i = 0; i < columnCount; i++) { obj[i]=table.getValueAt(row, i); } model.removeRow(row); model.insertRow(row - 1, obj); } } ———————————————— 版权声明:本文为CSDN博主「叮当LIU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_36880602/article/details/106117034
往下移动一行代码如下:
/** * 选中行往下移动一行 * @author liunan * @param table 表格对象 * @param model 表格模型对象 * @param columnCount 表格的列数一共有多少列 * */ public static void moveDownRow(JTable table,DefaultTableModel model,int columnCount) { int row = table.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(null, "请选中一行进行下移!", "提示", JOptionPane.INFORMATION_MESSAGE); } else if(row==table.getRowCount()-1){ JOptionPane.showMessageDialog(null,"当前选中行已经在最底层!", "提示", JOptionPane.INFORMATION_MESSAGE); }else { Object[] obj=new Object[columnCount]; for (int i = 0; i < columnCount; i++) { obj[i]=table.getValueAt(row, i); } model.removeRow(row); model.insertRow(row + 1, obj); } } ———————————————— 版权声明:本文为CSDN博主「叮当LIU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_36880602/article/details/106117034
————————————————
版权声明:本文为CSDN博主「叮当LIU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36880602/article/details/106117034