dtm.setValueAt(new Object[]{x}, 2,4);
改成dtm.setValueAt(String.valueOf(x), 2,4);

解决方案 »

  1.   

    dtm.setValueAt(new Object[]{x}, 2,4); 
    改成dtm.setValueAt(new Integer(x), 2,4);然后去掉jt.updateUI(); 否则你多次触发事件会造成你所说的错误,请尝试
      

  2.   

    package test;import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Timer;
    import java.util.TimerTask;import javax.swing.JFrame;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;public class Tabletest { public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 表格部分
    Object[] columnNames = { "编号", "类型", "安装位置", "浓度", "报警值", "断电值", "运行状态" };
    Object[][] data = { { "编号", "类型", "安装位置", "浓度", "报警值", "断电值", "运行状态" },
    { "A001", "CH4", "综采工作面", "浓度", "80", "90", "正常" },
    { "A002", "CH4", "综采上隅角", "浓度", "80", "90", "正常" },
    { "A003", "CH4", "10201回风顺槽", "浓度", "80", "90", "断线" },
    { "A004", "CO", "辅助运输大巷", "浓度", "20", "24", "正常" },
    { "A005", "风速", "总回风巷", "浓度", "5", "8", "断线" } }; final DefaultTableModel dtm = new DefaultTableModel(data, columnNames);
    final JTable jt = new JTable(dtm); jt.addMouseListener(new MouseAdapter() { @Override
    public void mouseClicked(MouseEvent e) {
    Timer executeSchedule = new Timer();
    executeSchedule.schedule(new TimerTask() {
    public void run() {
    int x = ((int) (Math.random() * 99));
    dtm.setValueAt(new Integer(x), 2, 4);
    //jt.updateUI();
    // area.setText(""+x);
    }
    }, 10, 300); } });

    frame.getContentPane().add(jt);
    frame.pack();
    frame.setVisible(true); }}这是我测试后的代码,没有问题,你可以看看