关于JTable中defaultModel的问题

cmj1425479236 2017-11-02 09:21:15
[code=javadelRow.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){
int rowcount = defaultModel.getRowCount()-1; //getRowCount 返回行数, rowcount<0 代表已经没有任何行了。
if(rowcount >= 0)
{
int[] select=table.getSelectedRows();
for(int i=0;i<select.length;i++){
defaultModel.removeRow(table.getSelectedRow());//这个地方很奇怪,不要在括号里写select[i],
//随着每条删除,索引都会变,所以会出错,但是这样输入就没错
}
defaultModel.setRowCount(rowcount+1-select.length);
table.setModel(defaultModel);
}
}
});
][/code]


这段代码是想删除table中选中行,在removeRow里我一开始写的是select[i]出错了,写成table.getSelectedRow()就没错,我知道前一种写法在循环的时候索引变了,导致找不到一部分行;不过为什么后一种写法就没有这种问题,内部是有什么转换吗?真心求解
...全文
82 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import javax.swing.table.*; import java.util.Vector; public class BorrowBookList extends JFrame implements ActionListener { DataBaseManager db=new DataBaseManager(); ResultSet rs; Container c; JPanel panel1,panel2; JLabel BookNameLabel,StudentNameLabel; JTextField BookNameTextField,StudentNameTextField; JButton SearchBtn,ExitBtn; JTable table=null; DefaultTableModel defaultModel=null; public BorrowBookList() { super("书籍借阅一览!"); c=getContentPane(); c.setLayout(new BorderLayout()); BookNameLabel=new JLabel("书名 ",JLabel.CENTER); StudentNameLabel=new JLabel("借阅者",JLabel.CENTER); BookNameTextField=new JTextField(15); StudentNameTextField=new JTextField(15); SearchBtn=new JButton("查询"); ExitBtn=new JButton("退出"); SearchBtn.addActionListener(this); ExitBtn.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(StudentNameLabel); box1.add(StudentNameTextField); box1.add(SearchBtn); Box box2=Box.createHorizontalBox(); box2.add(BookNameLabel); box2.add(BookNameTextField); box2.add(ExitBtn); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(Box.createVerticalGlue()); panel1=new JPanel(); panel1.add(boxH); panel2=new JPanel(); String[] name={"借阅者","书名","借阅日期","还入日期","备注"}; String[][] data=new String[0][0]; defaultModel=new DefaultTableModel(data,name); table=new JTable(defaultModel); table.setPreferredScrollableViewportSize(new Dimension(400,80)); JScrollPane s=new JScrollPane(table); panel2.add(s); c.add(panel1,BorderLayout.NORTH); c.add(panel2,BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e) { if(e.getSource()==ExitBtn) { db.closeConnection(); this.dispose(); } else if(e.getSource()==SearchBtn) { String strSQL="select studentname,bookname,borrowdate,returndate,com from bookbrowse";

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧