Hi
I have written a code to display the contents of a text file to a JTable. The file content is being displayed to the JTable but there are large number of extra rows also being displayed and when I scroll through table or click on the extra rows of table some exception takes place.
this is my code:
this is the exception
please help
I have written a code to display the contents of a text file to a JTable. The file content is being displayed to the JTable but there are large number of extra rows also being displayed and when I scroll through table or click on the extra rows of table some exception takes place.
this is my code:
public class InsertFileDataToJTable extends AbstractTableModel
{
/**
*
*/
int getcount=0;
private static final long serialVersionUID = 1L;
Vector data= new Vector();
Vector columns= new Vector();
String[] s;
String str;
private Object[] columnNames= {"Attribute"," #", "Position", "Transformation","Assignment","Field","Constant"};
@SuppressWarnings("unchecked")
public InsertFileDataToJTable() {
String line;
try {
FileInputStream fis = new FileInputStream("sample.config");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
while (st1.hasMoreTokens())
columns.addElement(st1.nextToken());
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, " ");
while (st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public int getRowCount() {
// System.out.println("size of data"+ data.size());
return data.size();//getColumnCount();
}
public int getColumnCount() {
// System.out.println("no. of columns"+ columns.size());
return columns.size();
}
public Object getValueAt(int rowIndex, int columnIndex)
{
return (String) data.elementAt((rowIndex * getColumnCount())
+ columnIndex);
}
public String getColumnName(int column) {
return (String) columnNames[column];
}
public void addRow(String value)
{
fireTableRowsInserted(data.size() - 1, data.size() - 1);
int row = data.size() -1 ;
int col = 1;
setValueAt(value, row, col);
}
public void removeRow(int row)
{
data.remove(row);
fireTableRowsDeleted(row, row);
}
public boolean isCellEditable(int row, int col)
{
return true;
}
}
this is the exception
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 180 >= 180 at java.util.Vector.elementAt(Unknown Source) at com.ibm.is.cc.gui.InsertFileDataToJTable.getValueAt(InsertFileDataToJTable.java:74) at javax.swing.JTable.getValueAt(Unknown Source) at javax.swing.JTable.prepareRenderer(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.BufferStrategyPaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paintForceDoubleBuffered(Unknown Source) at javax.swing.JViewport.blitDoubleBuffered(Unknown Source) at javax.swing.JViewport.windowBlitPaint(Unknown Source) at javax.swing.JViewport.setViewPosition(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.vsbStateChanged(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(Unknown Source) at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown Source) at javax.swing.DefaultBoundedRangeModel.setRangeProperties(Unknown Source) at javax.swing.DefaultBoundedRangeModel.setValue(Unknown Source) at javax.swing.JScrollBar.setValue(Unknown Source) at javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.setValueFrom(Unknown Source) at javax.swing.plaf.basic.BasicScrollBarUI$TrackListener.mouseDragged(Unknown Source) at java.awt.Component.processMouseMotionEvent(Unknown Source) at javax.swing.JComponent.processMouseMotionEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
please help