java - Make a JCheckBox in a JTable editable -
i need jtable. writing program, wich extracts data database jtable. first column should editable jcheckbox able work checked (true or false) rows , data.
i using abstracttablemodel(with class extends abstracttablemodel) , override these 5 methods:
@override public boolean iscelleditable(int rowindex, int columnindex) { return columnindex == 0; } @override public class<?> getcolumnclass(int col) { if (col == 0) { return boolean.class; } return super.getcolumnclass(col); } @override public int getcolumncount() { return header.length; } @override public int getrowcount() { return data.length; } @override public object getvalueat(int row, int col) { return data[row][col]; } to display jtable use:
jtable table = new jtable(); jscrollpane scrollpane = new jscrollpane(); . . .
table = new jtable(data, header); table.setmodel(this); scrollpane = new jscrollpane(table); i read data loop data array. header array defined. need checked rows send mail right data in it.
edit:
package test; import javax.swing.jframe; import javax.swing.jscrollpane; import javax.swing.jtable; import javax.swing.table.abstracttablemodel; public class testcode extends abstracttablemodel { private static final long serialversionuid = -7051817393770003705l; string[] header = {"", "header", "header", "header"}; object[][] data = {{new boolean(false), "text", "text", "text"}, {new boolean(false), "text", "text", "text"}, {new boolean(false), "text", "text", "text"}}; public testcode() { jframe frame = new jframe(); jtable table = new jtable(data, header); table.setmodel(this); jscrollpane scrollpane = new jscrollpane(table); frame.add(scrollpane); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.pack(); } @override public boolean iscelleditable(int row, int col) { return col == 0; } @override public class<?> getcolumnclass(int col) { if (col == 0) { return boolean.class; } return super.getcolumnclass(col); } @override public int getcolumncount() { return header.length; } @override public int getrowcount() { return data.length; } @override public object getvalueat(int row, int col) { return data[row][col]; } public static void main(string[] args) { testcode code = new testcode(); } } this short snippet of code execute make easier you. want able check jcheckboxes @ firt column able read true or false boolen column.
- thank help!
you have override abstracttablemodel#setvalueat
@override public void setvalueat(object avalue, int rowindex, int columnindex) { // super.setvalueat(avalue, rowindex, columnindex); default empty implementation not necesary if direct parent abstracttablemodel data[rowindex][columnindex] = avalue; firetablecellupdated(rowindex, columnindex);// notify listeners } result.

btw : don't use new boolean(false) instead use boolean.false
Comments
Post a Comment