java - How can I determine which cell in a JTable was selected? -
i have jtable
in gui , want return number based on value of cell user clicks on. code:
listselectionmodel newmodel = mytable.getselectionmodel(); newmodel.addlistselectionlistener(new listselectionlistener() { @override public void valuechanged(listselectionevent e) { int row = mytable.getselectedrow(); int column = mytable.getselectedcolumn(); int cell = getnewnum(); datefield.settext(string.valueof(cell)); } });
i have couple of problems this. firstly method makes table editable. before used method couldn't edit table can delete entries. looked in api don't know why is. secondly, if click on cell in row 3, say, , click on row in cell 3, no event registered. how can make event clicking in cell on selected row?
a common method point user clicked through event:
jtable1.addmouselistener(new java.awt.event.mouseadapter() { @override public void mouseclicked(java.awt.event.mouseevent evt) { int row = jtable1.rowatpoint(evt.getpoint()); int col = jtable1.columnatpoint(evt.getpoint()); if (row >= 0 && col >= 0) { ...... } } });
here second option using selection mode:
jtable1.setselectionmode(javax.swing.listselectionmodel.single_selection); jtable1.addmouselistener(new java.awt.event.mouseadapter() { @override public void mouseclicked(java.awt.event.mouseevent evt) { ... int row = jtable1.getselectedrow(); int col = jtable1.getselectedcolumn()); if (evt.getclickcount() > 1) { // double-click etc... ...
if go:
public boolean iscelleditable(int row, int col) { return false; }
then jtable not editable.
finally in order value want, need call getvalueat(row,col)
of jtable model, or contents this:
object foo = jtable1.getmodel().getvalueat(row, col);
Comments
Post a Comment