java - Database-JTable Interaction -
every time implement database viewer have functions populate table , adjust column size. find ready component can view query result, sort, edit entries in table , automaticaly adjust size of column respect data. want use metadata define type of entities automaticaly. thing pass resultset of query , component rest. idea?
what have done far:
private static defaulttablemodel buildtablemodel(resultset rs) throws sqlexception { resultsetmetadata metadata = rs.getmetadata(); // names of columns vector<string> columnnames = new vector<string>(); int columncount = metadata.getcolumncount(); (int column = 1; column <= columncount; column++) { columnnames.add(metadata.getcolumnname(column)); } // data of table vector<vector<object>> data = new vector<vector<object>>(); while (rs.next()) { vector<object> vector = new vector<object>(); (int columnindex = 1; columnindex <= columncount; columnindex++) { vector.add(rs.getobject(columnindex)); } data.add(vector); } return new defaulttablemodel(data, columnnames); } public static void showresult(resultset rs) throws sqlexception{ //creates table jtable table = new jtable(buildtablemodel(rs)); table.setenabled(false); //abjust table size table.setautoresizemode(jtable.auto_resize_off); tablecolumnadjuster tca = new tablecolumnadjuster(table);//the class adjusting column size tca.adjustcolumns(); //jframe jframe view = new jframe("view"); view.setdefaultcloseoperation(jframe.dispose_on_close); //add frame jscrollpane pane = new jscrollpane(table); view.add(pane); //settings view.setvisible(true); view.setsize(table.getwidth(), 400); }
and have class adjust column size.
to sort records use order clause query fire records. use tablecolumnmodel set column size. here code //your edit code rs=st.executequery("select * managevendor order sname"); table.setmodel(buildtablemodel(rs)); tablecolumnmodel tcm=table.getcolumnmodel(); tcm.getcolumn(0).setpreferredwidth(50); tcm.getcolumn(1).setpreferredwidth(200); tcm.getcolumn(2).setpreferredwidth(150); tcm.getcolumn(3).setpreferredwidth(60); tcm.getcolumn(4).setpreferredwidth(50); tcm.getcolumn(5).setpreferredwidth(250);
Comments
Post a Comment