java - JTable throwing IndexOutOfBoundsException during paint -


hi i'm building application using jtable display data database , keep getting indexoutofboundexception tablemodel.getvalueat(row,col) during painting. debugged code , seems data isn't being saved defaulttablemodels data vector.

this code...

    public class tableframe extends jframe{         public static void main(string[] args){             tableframe frame = new tableframe();          }          private tablepanel tablepanel;         public tableframe(){             super();             setsize(new dimension(500,500));             setdefaultcloseoperation(jframe.exit_on_close);              tablepanel = new tablepanel();             add(tablepanel);              updatelabels();             setvisible(true);         }          public void updatelabels() {             settitle("main frame");              tablepanel.updatelabels();         }          private static class tablepanel extends jpanel{              private defaulttablemodel tablemodel;             private defaulttablecolumnmodel colmodel;             private jtable table;              private jpanel buttonpanel;             private jbutton refreshbutton;              public tablepanel(){                 setlayout(new borderlayout());          buttonpanel = new jpanel(new flowlayout());         refreshbutton = new jbutton();         refreshbutton.addactionlistener(new actionlistener() {             @override             public void actionperformed(actionevent arg0) {                 refreshdata();             }         });         buttonpanel.add(refreshbutton);         add(buttonpanel,borderlayout.north);          //todo:set column renderers , editors         colmodel = new defaulttablecolumnmodel();         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));         colmodel.addcolumn(new tablecolumn(0,75));          tablemodel = new defaulttablemodel();          table = new jtable(tablemodel,colmodel);          jscrollpane scrollpane = new jscrollpane(table);         add(scrollpane,borderlayout.center);          updatelabels();     }      //this going query data database , populate table     //problem occurs during painting     public void refreshdata(){         random rand = new random();          for(int i=0;i<1000;i++){             vector<object> fields = new vector<object>();             for(int j=1;j<=11;j++){                 fields.add(rand.nextint());             }             tablemodel.addrow(fields);         }     }      public void updatelabels() {         colmodel.getcolumn(0).setheadervalue("col 1");         colmodel.getcolumn(1).setheadervalue("col 2");         colmodel.getcolumn(2).setheadervalue("col 3");         colmodel.getcolumn(3).setheadervalue("col 4");         colmodel.getcolumn(4).setheadervalue("col 5");         colmodel.getcolumn(5).setheadervalue("col 6");         colmodel.getcolumn(6).setheadervalue("col 7");         colmodel.getcolumn(7).setheadervalue("col 8");         colmodel.getcolumn(8).setheadervalue("col 9");         colmodel.getcolumn(9).setheadervalue("col 10");         colmodel.getcolumn(10).setheadervalue("col 11");                  refreshbutton.settext("refresh");                  repaint();             }         }     } 

this exception...

exception in thread "awt-eventqueue-0" java.lang.arrayindexoutofboundsexception: 0 >= 0 @ java.util.vector.elementat(vector.java:447) @ tableframe$tablepanel.refreshdata(tableframe.java:108) @ tableframe$tablepanel$1.actionperformed(tableframe.java:64) @ javax.swing.abstractbutton.fireactionperformed(abstractbutton.java:2012) @ javax.swing.abstractbutton$handler.actionperformed(abstractbutton.java:2335) @ javax.swing.defaultbuttonmodel.fireactionperformed(defaultbuttonmodel.java:404) @ javax.swing.defaultbuttonmodel.setpressed(defaultbuttonmodel.java:259) @ javax.swing.plaf.basic.basicbuttonlistener.mousereleased(basicbuttonlistener.java:252) @ java.awt.component.processmouseevent(component.java:6268) @ javax.swing.jcomponent.processmouseevent(jcomponent.java:3267) @ java.awt.component.processevent(component.java:6033) @ java.awt.container.processevent(container.java:2045) @ java.awt.component.dispatcheventimpl(component.java:4629) @ java.awt.container.dispatcheventimpl(container.java:2103) @ java.awt.component.dispatchevent(component.java:4455) @ java.awt.lightweightdispatcher.retargetmouseevent(container.java:4633) @ java.awt.lightweightdispatcher.processmouseevent(container.java:4297) @ java.awt.lightweightdispatcher.dispatchevent(container.java:4227) @ java.awt.container.dispatcheventimpl(container.java:2089) @ java.awt.window.dispatcheventimpl(window.java:2517) @ java.awt.component.dispatchevent(component.java:4455) @ java.awt.eventqueue.dispatcheventimpl(eventqueue.java:649) @ java.awt.eventqueue.access$000(eventqueue.java:96) @ java.awt.eventqueue$1.run(eventqueue.java:608) @ java.awt.eventqueue$1.run(eventqueue.java:606) @ java.security.accesscontroller.doprivileged(native method) @ java.security.accesscontrolcontext$1.dointersectionprivilege(accesscontrolcontext.java:105) @ java.security.accesscontrolcontext$1.dointersectionprivilege(accesscontrolcontext.java:116) @ java.awt.eventqueue$2.run(eventqueue.java:622) @ java.awt.eventqueue$2.run(eventqueue.java:620) @ java.security.accesscontroller.doprivileged(native method) @ java.security.accesscontrolcontext$1.dointersectionprivilege(accesscontrolcontext.java:105) @ java.awt.eventqueue.dispatchevent(eventqueue.java:619) @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:275) @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:200) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:190) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:185) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:177) @ java.awt.eventdispatchthread.run(eventdispatchthread.java:138) 

i debugged code , added call tablemodel.getdatavector().getelementat(0).getelementat(0) , tablemodel.getrowcount(). getrowcount() returned 1000 getelementat() resulted in indexoutofbounds exception, in awt event queue. think did should work there's i'm missing.

the tablemodel doesn't refer columnmodel number of columns has set using tablemodel.setcolumncount(). otherwise defaulttablemodel justifies data , truncates row number retreived getcolumncount().


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -