欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javafx tableview鼠标触发更新属性详解

程序员文章站 2024-02-22 17:11:10
本文实例为大家分享了javafx tableview鼠标触发更新属性,供大家参考,具体内容如下 public class hovercell extends ta...

本文实例为大家分享了javafx tableview鼠标触发更新属性,供大家参考,具体内容如下

public class hovercell extends tablecell<person, string> {

  public hovercell(stringproperty hoverproperty) {
    setonmouseentered(e -> hoverproperty.set(getitem()));
    setonmouseexited(e -> hoverproperty.set(null));
  }

  @override
  protected void updateitem(string item, boolean empty) {
    super.updateitem(item, empty);
    settext(empty ? null : item);
  }
}

记录一下鼠标滑动触发表格更新内容,后续继续添加tableview的其他内容

firstnamecol.setcellfactory(textfieldtablecell.fortablecolumn());
firstnamecol.setoneditcommit(event -> {
  string[] row = event.getrowvalue();
  row[index] = event.getnewvalue();
});
 

记录一下,如何让tablecell可以编辑的同时,再可以获取其他列的值

public void edittable(){
 
  namecolumn.setcellfactory(textfieldtablecell.fortablecolumn());
  qtycolumn.setcellfactory(textfieldtablecell.fortablecolumn(new integerstringconverter()));
  expcolumn.setcellfactory(textfieldtablecell.fortablecolumn());
  mrpcolumn.setcellfactory(textfieldtablecell.fortablecolumn(new doublestringconverter()));
  amtcolumn.setcellfactory(textfieldtablecell.fortablecolumn(new doublestringconverter()));
  final int[] ad = {0};
 
  namecolumn.setoneditcommit(new eventhandler<tablecolumn.celleditevent<tabledata, string>>() {
    @override
    public void handle(tablecolumn.celleditevent<tabledata, string> event) {
      ((tabledata)event.gettableview().getitems().get(event.gettableposition().getrow())).setname(event.getnewvalue());
      //tableposition tp = tableview.getfocusmodel().getfocusedcell();
 
    }
  });
  qtycolumn.setoneditcommit(new eventhandler<tablecolumn.celleditevent<tabledata, integer>>() {
    @override
    public void handle(tablecolumn.celleditevent<tabledata, integer> event) {
      ((tabledata)event.gettableview().getitems().get(event.gettableposition().getrow())).setqty(event.getnewvalue());
 
      ad[0] = event.gettableview().getitems().get(event.gettableposition().getrow()).getqty();
      dyncal();
 
 
    }
  });
  expcolumn.setoneditcommit(new eventhandler<tablecolumn.celleditevent<tabledata, string>>() {
    @override
    public void handle(tablecolumn.celleditevent<tabledata, string> event) {
      ((tabledata)event.gettableview().getitems().get(event.gettableposition().getrow())).setexp(event.getnewvalue());
    }
  });
  mrpcolumn.setoneditcommit(new eventhandler<tablecolumn.celleditevent<tabledata, double>>() {
    @override
    public void handle(tablecolumn.celleditevent<tabledata, double> event) {
      event.gettableview().getitems().get(event.gettableposition().getrow()).setmrp(event.getnewvalue());
 
    }
  });
 
 
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。