我在一个JTable的行选择事件里把JTable里的一些值赋给了一些变量。在刷新表格的时候把新的模式
赋给原来的JTable再repaint() 。会抛出下标越界的异常。  经过测试 发现如果去掉那些赋值语句就可以了。  这是为什么阿?  怎么解决?相关代码如下:
//菜单表格选择事件处理
class listSelection2 implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e) 
    {
if (!e.getValueIsAdjusting()) 
{
int selectedRow=menuTable.getSelectedRow();
/* foodclass=String.valueOf(menuTable.getValueAt(selectedRow,1));
foodname=String.valueOf(menuTable.getValueAt(selectedRow,2));
unit=String.valueOf(menuTable.getValueAt(selectedRow,3));
price=Float.parseFloat(String.valueOf(menuTable.getValueAt(selectedRow,4)));*/
code.setText(foodname);
                }
    }

}
        //增加消费窗口按钮事件处理
        public void actionPerformed(ActionEvent e)
{
if(e.getSource()==serchbt)
{
if(!iscode(code.getText()))
{
                    menuTable.setModel(creatMenuTableMod("select * from FoodMenuTbl where Name like '%"+code.getText()+"%'"));
}
else
{
menuTable.setModel(creatMenuTableMod("select * from FoodMenuTbl where ID like '%"+code.getText()+"%'"));
}
menuTable.repaint();
}