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

 更新时间:2017年08月26日 09:24:11   作者:空灵空灵  
这篇文章主要为大家详细介绍了javafx tableview鼠标触发更新属性的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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());
 
    }
  });
 
 
 
}

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

相关文章

  • java数据结构-堆实现优先队列

    java数据结构-堆实现优先队列

    通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出,这篇文章主要介绍了java数据结构-堆实现优先队列,感兴趣的朋友一起看看吧
    2021-08-08
  • Java中for循环的执行过程分析

    Java中for循环的执行过程分析

    这篇文章主要介绍了Java中for循环的执行过程,实例分析了for循环的执行原理与顺序,对于深入理解Java具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 整理Java编程中字符串的常用操作方法

    整理Java编程中字符串的常用操作方法

    这篇文章主要介绍了Java编程中字符串的常用操作方法的整理,字符串处理是Java入门学习中的基础知识,需要的朋友可以参考下
    2016-02-02
  • Spark内存调优指南

    Spark内存调优指南

    这篇文章主要为大家介绍了Spark内存调优指南数据序列化分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java流程控制语句最全汇总(上篇)

    Java流程控制语句最全汇总(上篇)

    这篇文章主要介绍了Java流程控制语句最全汇总(上篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为上篇,需要的朋友可以参考下
    2023-01-01
  • 利用Lambda表达式创建新线程案例

    利用Lambda表达式创建新线程案例

    这篇文章主要介绍了利用Lambda表达式创建新线程案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Windows+Apache+resin配置

    Windows+Apache+resin配置

    Windows+Apache+resin配置...
    2006-12-12
  • Spring Boot不同版本Redis设置JedisConnectionFactory详解

    Spring Boot不同版本Redis设置JedisConnectionFactory详解

    本文章向大家介绍Spring Boot不同版本Redis设置JedisConnectionFactory,主要内容包括1.X 版本、2.X 版本、2.、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容
    2023-09-09
  • Spring注解@Profile实现开发环境/测试环境/生产环境的切换

    Spring注解@Profile实现开发环境/测试环境/生产环境的切换

    在进行软件开发过程中,一般会将项目分为开发环境,测试环境,生产环境。本文主要介绍了Spring如何通过注解@Profile实现开发环境、测试环境、生产环境的切换,需要的可以参考一下
    2023-04-04
  • Java内存溢出的几个区域总结(注意避坑!)

    Java内存溢出的几个区域总结(注意避坑!)

    内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存,下面这篇文章主要给大家介绍了关于Java内存溢出的几个区域,总结出来给大家提醒注意避坑,需要的朋友可以参考下
    2022-11-11

最新评论