我写了一个查询方法chaxun();,从数据库里查询数据,并添加到DefaultTableModel模型中,然后用jTable设置DefaultTableModel模型,显示数据。如果用单个线程(也就是主线程)执行这个方法,就没问题。显示正常,也不会有异常。但如果新增一个线程执行这个方法,显示没问题。但有时候会出现数组越界异常,有时候不会。我反复找了一下原因,可能是我用新增线程执行这个方法,设置DefaultTableModel模型的时候(模型中有表数据,和表头),会自动添加表头,同一个时间内,主线程也会自动去添加表头,所以冲突了。不知道到底是什么原因,请高手解答。

解决方案 »

  1.   

    《1》Swing是单线程处理事件 不要在GUI线程之外修改组件状态
    《2》DefaultTableModel是只负责处理数据,和表头没有任何关系
    《3》JTable 数据模型 TableModel
               列模型 TableColumnModel 
               表头的显示是根据TableColumnModel数据显示要看清楚 报错是什么。。