继承DefaultTableModel
它会给你重画的

解决方案 »

  1.   

    因为你的UserDataTabMode类没有实现setValueAt()方法,该方法会激发TableModelEvent事件。
    你可以实现setValueAt()方法或改为扩展DefaultTableModel试试
      

  2.   

    还要改哪些地方呢?如果只是把AbstractTableModel换成DefaultTableModel的话。
    (当然添加了IMPROT)
    后边的方法都在运行时要出错啊。
      

  3.   

    我没有添加setValueAt()是因为所有的列都不允许编辑,添加了setValueAt(){fireTableCellUpdated(row, col);}以后还是不行,没有更新,然后就是换成DefaultTableModel的话运行时getColumnCount()那些都会报错啊。
      

  4.   

    java.lang.NullPointerException
            at OnLineOrderSystem.Server.UserDataTabMode.getRowCount(TabModels.java
    7)
            at javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel
    ava:194)
            at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:9        at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:8        at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:6        at OnLineOrderSystem.Server.UserDataTabMode.<init>(TabModels.java:15)
            at OnLineOrderSystem.Server.frmUserDataManage$UserDataTab.<init>(frmUs
    DataManage.java:81)
            at OnLineOrderSystem.Server.frmUserDataManage.<init>(frmUserDataManage
    ava:31)
            at OnLineOrderSystem.Server.ServerFrame.jMenuDataUser_actionPerformed(
    rverFrame.java:139)
            at OnLineOrderSystem.Server.ServerFrame$3.actionPerformed(ServerFrame.
    va:104)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:
    64)
            at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abst
    ctButton.java:1817)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonMod
    .java:419)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:2
    )
            at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java
    113)
            at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelea
    d(BasicMenuItemUI.java:943)
            at java.awt.Component.processMouseEvent(Component.java:5134)
            at java.awt.Component.processEvent(Component.java:4931)
            at java.awt.Container.processEvent(Container.java:1566)
            at java.awt.Component.dispatchEventImpl(Component.java:3639)
            at java.awt.Container.dispatchEventImpl(Container.java:1623)
            at java.awt.Component.dispatchEvent(Component.java:3480)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:34
    )
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:316        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
            at java.awt.Container.dispatchEventImpl(Container.java:1609)
            at java.awt.Window.dispatchEventImpl(Window.java:1590)
            at java.awt.Component.dispatchEvent(Component.java:3480)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatch
    read.java:197)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchTh
    ad.java:150)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:14        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:13        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
      

  5.   

    请问DefaultTableModel中;有哪些方法是必须实现的啊?
      

  6.   

    DefaultTableModel不是Abstract类,没有必须实现的方法。这种错误可能是别的地方有问题,,仔细查一下吧
      

  7.   

    真的是很奇怪,这个地方如果写AbstractTableModel就没有错,
    如果是DefaultTableModel就有那么一堆错,有谁能给我一段正确的使用DefaultTableModel的程序吗?我想自己好好分析分析。
      

  8.   


    System.out.println("Refresh");
    TabDataSource=Server.DB.RsUserData("");
             System.out.println(" "+String.valueOf(TabDataSource.size()));
    myModel.data=TabDataSource;
    System.out.println("  "+String.valueOf(myModel.data.size()));
    table.repaint();
      

  9.   

    不好意思,没写完:
    把       System.out.println("Refresh");
    TabDataSource=Server.DB.RsUserData("");
             System.out.println(" "+String.valueOf(TabDataSource.size()));
    myModel.data=TabDataSource;
    System.out.println("  "+String.valueOf(myModel.data.size()));
    table.repaint();//这里里的table.repaint()换成fireTableDataChanged()就可以了
    这个方法回去通知table刷新的
      

  10.   

    哦,由没写完,
    应该是:把       System.out.println("Refresh");
    TabDataSource=Server.DB.RsUserData("");
             System.out.println(" "+String.valueOf(TabDataSource.size()));
    myModel.data=TabDataSource;
    System.out.println("  "+String.valueOf(myModel.data.size()));
    table.repaint();//这里里的table.repaint()换成myModel.fireTableDataChanged()就可以了
    这个方法回去通知table刷新的