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.

enter image description here

btw : don't use new boolean(false) instead use boolean.false


Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

jquery - How would i go about shortening this code? And to cancel the previous click on click of new section? -