public void houseJTable(JPanel jp5,Container cpMe){

jt1=new JTable(10,9);
jt1.setBounds(0,0, 920, 573);
jt1.setRowHeight(92);
jt1.setCellSelectionEnabled(false);
jt1.getTableHeader().setReorderingAllowed(false);
jt1.getTableHeader().setResizingAllowed(false);
jt1.setFillsViewportHeight(true); 
jt1.setDefaultEditor(Object.class, new myedit());
jscrollpane = new JScrollPane(jt1);
jscrollpane.setBounds(0, 0, 920, 573);
jp5.add(jscrollpane);

System.out.println("in  addJTable");
jt1.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {      row = jt1.getSelectedRow();// 获取选取行
     col= jt1.getSelectedColumn();//获取列
     int k = row + 1;// +1是因为默认方式为0行0列开始;
     int l=col+1;
     String tt1 = (String) jt1.getValueAt(row,col);
    System.out.println("你选择的是第" + k + "行," + l+"列");
    jt1.getCellEditor(row,col).getTableCellEditorComponent(jt1,0,true,row,col).setBackground(Color.YELLOW);
    }
   });

} in  addJTable
你选择的是第2行,3列
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)
at com.git.JTable.AddJTable$myedit.getTableCellEditorComponent(AddJTable.java:211)

解决方案 »

  1.   

    java.lang.StackOverflowError这是由于线程请求的栈深度大于虚拟机所允许的最大深度所抛出的异常。
    可能是由于你分配的栈的容量太小的原因,亦或者是在houseJTable方法内存在了死循环,导致产生了大量的本地变量,致使内存溢出的情况
      

  2.   

    出错信息已经指明是这句jt1.getCellEditor(row,col).getTableCellEditorComponent(jt1,0,true,row,col).setBackground(Color.YELLOW);有错。
      

  3.   

    是因为你程序有循环调用,而且没有返回,导致超过最大stack深度看一下你是否在你自己重写的方法里面调用了自身!
      

  4.   

    4楼说的对应该是这一句,删掉这句就没事了
    jt1.getCellEditor(row,col).getTableCellEditorComponent(jt1,0,true,row,col).setBackground(Color.YELLOW); 但是这句该怎么改呢?