javaFX TableCell with event -


what correct way add eventhander tablecell?

at first had these 2 lines

@fxml private tablecolumn eancol; ... eancol.setcellvaluefactory(new propertyvaluefactory<myrow, string>("ean")); 

and worked until tried adding event

eventhandler eh = new eventhandler<mouseevent>(){     @override     public void handle(mouseevent mouseevent) {         if(mouseevent.getbutton().equals(mousebutton.primary)){             if(mouseevent.getclickcount() == 2){                 system.out.print("double clicked ");                 system.out.println(mouseevent.gettarget().tostring());             }         }     } };  eancol.setcellfactory(new callback<tablecolumn, tablecell>() {     @override     public tablecell call(tablecolumn p) {         tablecell cell = new tablecell();         cell.setonmouseclicked(eh);         return cell;     } }); 

problem: can double click on it, whole column empty, null value.

a table cell created default constructor doesn't in updateitem(...) method cause displayed. there default_cell_factory defined in tablecolumn represents factory generating "default" table cells (i.e. displaying string version of content). if want default behavior event handler added can do:

eancol.setcellfactory(new callback<tablecolumn<?,?>, tablecell<?,?>>() {     @override     public tablecell call(tablecolumn<?,?> p) {         tablecell<?,?> cell = tablecolumn.default_cell_factory.call(p);         cell.setonmouseclicked(eh);         return cell;     } }); 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -