java - JTable Is not Adding Vector on Click Event of Label -
i have jtable , have set vector header , vector of vector row content has add together header onclick event. when tried add together string vector in click event adding string vector vector not added header how can create have used firetablechanged event of model. not working how.
here sample code.
vector vector; vector<vector> vector_content; table = new javax.swing.jtable(); table.setmodel(new defaulttablemodel(vector_content,vector){ private static final long serialversionuid = 1l; @override public boolean iscelleditable(int row, int column) { homecoming false; } });
now have click event m adding info header table of content.
vector = new vector(); vector_content = new vector<vector>(); vector.add("employee name"); vector.add("date"); vector.add("type");
data added vector can print info how not set table how can create it?
example here working because have added table model using col vector , row when utilize in button click not working method name ![setdate();][1]
public class jtable_column extends javax.swing.jframe { public vector col; public vector<vector> row; /** * creates new form jtable_column */ public jtable_column() { setdata(); initcomponents(); } private void initcomponents() { jpanel1 = new javax.swing.jpanel(); jscrollpane1 = new javax.swing.jscrollpane(); jtable1 = new javax.swing.jtable(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1); jpanel1.setlayout(jpanel1layout); jpanel1layout.sethorizontalgroup( jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgap(0, 0, short.max_value) ); jpanel1layout.setverticalgroup( jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgap(0, 0, short.max_value) ); jtable1.setmodel(new javax.swing.table.defaulttablemodel(row,col )); jscrollpane1.setviewportview(jtable1); javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcontainergap() .addcomponent(jpanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related) .addcomponent(jscrollpane1, javax.swing.grouplayout.preferred_size, 375, javax.swing.grouplayout.preferred_size) .addcontainergap()) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcontainergap() .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcomponent(jscrollpane1, javax.swing.grouplayout.preferred_size, 275, javax.swing.grouplayout.preferred_size) .addgap(0, 1, short.max_value)) .addcomponent(jpanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)) .addcontainergap()) ); pack(); }// </editor-fold> /** * @param args command line arguments */ public static void main(string args[]) { /* * set nimbus , sense */ //<editor-fold defaultstate="collapsed" desc=" , sense setting code (optional) "> /* * if nimbus (introduced in java se 6) not available, remain * default , feel. details see * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ seek { (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) { if ("nimbus".equals(info.getname())) { javax.swing.uimanager.setlookandfeel(info.getclassname()); break; } } } grab (classnotfoundexception ex) { java.util.logging.logger.getlogger(jtable_column.class.getname()).log(java.util.logging.level.severe, null, ex); } grab (instantiationexception ex) { java.util.logging.logger.getlogger(jtable_column.class.getname()).log(java.util.logging.level.severe, null, ex); } grab (illegalaccessexception ex) { java.util.logging.logger.getlogger(jtable_column.class.getname()).log(java.util.logging.level.severe, null, ex); } grab (javax.swing.unsupportedlookandfeelexception ex) { java.util.logging.logger.getlogger(jtable_column.class.getname()).log(java.util.logging.level.severe, null, ex); } //</editor-fold> /* * create , display form */ java.awt.eventqueue.invokelater(new runnable() { public void run() { new jtable_column().setvisible(true); } }); } // variables declaration - not modify private javax.swing.jpanel jpanel1; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jtable jtable1; // end of variables declaration private void setdata() { col = new vector(); row = new vector<vector>(); col.add("first"); col.add("sec"); col.add("third"); col.add("third"); } }
defaulttablemodel
has number of helpful methods, 1 of addcolumn
...
tablemodel model = (defaulttablemodel)table.getmodel(); model.addcolumn("employee name"); model.addcolumn("date"); model.addcolumn("type");
if want remove existing columns, can utilize setcolumncount
, pass 0
first
updated based on additional example
basically, did , worked fine...
jtable1.gettableheader().addmouselistener(new mouseadapter() { @override public void mouseclicked(mouseevent e) { defaulttablemodel model = (defaulttablemodel) jtable1.getmodel(); model.setcolumncount(0); model.addcolumn("banans"); model.addcolumn("apples"); model.addcolumn("pears"); model.addcolumn("fluffy"); model.addcolumn("unicorns"); } });
you should never modify state of info model might relying out side model, doing potentially place ui unstable state
java swing events vector jtable
No comments:
Post a Comment