Java Exception from inside
I made a JTable.
Actually I subclassed it to get rid JTable multtidifficult
functionality.
I just want to display my information in a table nothing more.
So far it works but when Java wants to repaint the Table
from inside some exception boil up.
Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
This only happens when rows are added.
I have no clue what causes the Exception.
I see now reference to my table so I can't debug it.
I pasted the Exception list at the end.
I subclassed DefaultTableModel and used it as in innerclass of
myTable.
I did this to get rid of the editable functionality of JTable
private class MyTableModel extends DefaultTableModel
{
public boolean isCellEditable(int row,int column)
{
return false;
}
}
To controll the look of MyTable I subclassed TableCellRenderer and
added
it also as an innerclass.
public MyTableRenderer()
{
super();
setOpaque(true); // background must show
}
public MyTableRenderer(CellContent content)
{
super();
setOpaque(true); // background must show
this.setBackground(content.getBackground());
this.setForeground(content.getForeground());
this.setFont(content.getFont());
this.setHorizontalAlignment(content.getHorizontalAlignment());
if (content.getLineBorder()!=null) this.setBorder
(content.getLineBorder());
this.setText(content.getValue());
}
public Component getTableCellRendererComponent( JTable table,
Object cellContent,
boolean isSelected,
boolean hasFocus,
int row,
int
column)
{
if (cellContent==null) return this;
CellContent content=(CellContent)cellContent; // We only cast
one time to speed up.
this.setBackground(content.getBackground());
this.setForeground(content.getForeground());
this.setFont(content.getFont());
this.setHorizontalAlignment(content.getHorizontalAlignment());
if (content.getLineBorder()!=null) { this.setBorder
(content.getLineBorder()); }
this.setText(content.getValue());
return this;
}
}
==============
Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableModel.getValueAt
(DefaultTableModel.java:633)
at javax.swing.JTable.getValueAt(JTable.java:2695)
at javax.swing.JTable.prepareRenderer(JTable.java:5712)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:
2075)
at javax.swing.plaf.basic.BasicTableUI.paintCells
(BasicTableUI.java:1977)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:
1773)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:763)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5129)
at javax.swing.BufferStrategyPaintManager.paint
(BufferStrategyPaintManager.java:277)
at javax.swing.RepaintManager.paint(RepaintManager.java:1217)
at javax.swing.JComponent.paint(JComponent.java:1013)
at java.awt.GraphicsCallback$PaintCallback.run
(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent
(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents
(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1762)
at javax.swing.RepaintManager.paintDirtyRegions
(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions
(RepaintManager.java:714)
at javax.swing.RepaintManager.seqPaintDirtyRegions
(RepaintManager.java:694)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run
(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters
(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter
(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy
(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)