tablemodel和jtable的示例中的异常

时间:2014-01-22 23:24:45

标签: java swing nullpointerexception jtable tablemodel

我接下来的例外......

但未能将其显示在屏幕上,为了查看框架中的容器和位置,我放了一个jButton。

https://github.com/andres18281/example_table

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at javax.swing.JTable.prepareRenderer(JTable.java:5736)
            at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)
            at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
            at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
            at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
            at javax.swing.JComponent.paintComponent(JComponent.java:778)
            at javax.swing.JComponent.paint(JComponent.java:1054)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JViewport.paint(JViewport.java:731)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
            at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
            at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
            at java.awt.Container.paint(Container.java:1967)
            at javax.swing.JComponent.paintChildren(JComponent.java:901)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            at javax.swing.JComponent.paint(JComponent.java:1063)
            at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
            at javax.swing.JComponent.paintChildren(JComponent.java:887)
            at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226)
            at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
            at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
            at javax.swing.JComponent.paint(JComponent.java:1040)
            at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
            at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
            at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
            at java.awt.Container.paint(Container.java:1967)
            at java.awt.Window.paint(Window.java:3877)
            at javax.swing.RepaintManager$3.run(RepaintManager.java:819)
            at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
            at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
            at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
            at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
            at java.awt.EventQueue.access$200(EventQueue.java:103)
            at java.awt.EventQueue$3.run(EventQueue.java:694)
            at java.awt.EventQueue$3.run(EventQueue.java:692)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)>

1 个答案:

答案 0 :(得分:2)

1)你已经破了TableModel 如下所示更改您的方法getRowCountgetColumnCount

  @Override
  public int getRowCount() {
      return lista.size();
  }

  @Override
  public int getColumnCount() {
      return 3;
  }

2)模型中的列索引从代码中的0而不是1开始。改变你的方法。

3)阅读JTableTableModel的{​​{3}}。