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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

空灵空灵   2021-03-29 我要评论
想了解javafx tableview鼠标触发更新属性详解的相关内容吗,空灵空灵在本文为您仔细讲解javafx tableview鼠标触发更新属性的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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());
 
    }
  });
 
 
 
}

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们