TableView,设置可编辑单元格

2024-06-25

我尝试使表格单元格可编辑。我设法使用其中包含字符串值的两个列来执行此操作,但我无法使用表示整数值的列来执行此操作。

带有 X 的地方是编译器收到错误的地方:

The method setCellFactory(Callback<TableColumn<DataModel,Integer>,TableCell<DataModel,Integer>>) in the type TableColumn<DataModel,Integer> is not applicable for the arguments  (Callback<TableColumn<DataModel,String>,TableCell<DataModel,String>>)

带有 XX 的地方是编译器收到错误的地方:

The method setOnEditCommit(EventHandler<TableColumn.CellEditEvent<DataModel,Integer>>) in the type TableColumn<DataModel,Integer> is not applicable for the arguments ((CellEditEvent<DataModel, Integer> event) -> {})

代码如下:

public void initialize(URL location, ResourceBundle resources) {
    //Tworzymy sobie kolumny, które będą odpowiadać oraz przyjmować konretne dane
    TableColumn<DataModel, String> nameColumn = new TableColumn<DataModel, String>("Name");
    nameColumn.setMinWidth(100);
    TableColumn<DataModel, String> surnameColumn = new TableColumn<DataModel, String>("Surname");
    surnameColumn.setMinWidth(100);
    TableColumn<DataModel, Integer> ageColumn = new TableColumn<DataModel, Integer>("Age");
    ageColumn.setMinWidth(100);
    TableColumn<DataModel, Integer> telNumberColumn = new TableColumn<DataModel, Integer>("Tel. Number");
    telNumberColumn.setMinWidth(100);

    //dodajemy kolumny do okna
    tableView.getColumns().addAll(nameColumn,surnameColumn,ageColumn,telNumberColumn);

    //podajemy nazwy zmiennych, których wartości mają się wyświetlać w poszczególnych kolumnach
    nameColumn.setCellValueFactory(new PropertyValueFactory<>("sName"));
    surnameColumn.setCellValueFactory(new PropertyValueFactory<>("sSurname"));
    ageColumn.setCellValueFactory(new PropertyValueFactory<>("iAge"));
    telNumberColumn.setCellValueFactory(new PropertyValueFactory<>("iPhoneNumber"));

    //Sprawiamy że poszczególne kolumny stają się edytowalne
    nameColumn.setCellFactory(TextFieldTableCell.<DataModel>forTableColumn());
    nameColumn.setOnEditCommit((CellEditEvent<DataModel, String> event) -> {
        ((DataModel) event.getTableView().getItems(). get(event.getTablePosition().getRow())).  setsName(event.getNewValue());
    });
    surnameColumn.setCellFactory(TextFieldTableCell.<DataModel>forTableColumn());
    surnameColumn.setOnEditCommit((CellEditEvent<DataModel, String> event) -> {
        ((DataModel) event.getTableView().getItems(). get(event.getTablePosition().getRow())).  setsSurname(event.getNewValue());
    });
X   ageColumn.setCellFactory(TextFieldTableCell.<DataModel>forTableColumn());
XX  ageColumn.setOnEditCommit((CellEditEvent<DataModel, Integer> event) -> {
    //    ((DataModel) event.getTableView().getItems(). get(event.getTablePosition().getRow())).  setiAge(Integer.valueOf(event.getNewValue()));

    });
X   telNumberColumn.setCellFactory(TextFieldTableCell.<DataModel>forTableColumn());
XX  telNumberColumn.setOnEditCommit((CellEditEvent<DataModel, Integer> event) -> {
 //         ((DataModel) event.getTableView().getItems(). get(event.getTablePosition().getRow())).  setiPhoneNumber(Integer.valueOf(event.getNewValue()));

    });

    tableView.setPlaceholder(new Label("Pust tabelka!"));//jaki element dodać jeśli tabelka nie jest wyświetlona
    tableView.setEditable(true);

    tableView.setItems(dataList); //wczytujemy dane do przygotowanej tabelki

    buttAdd.setOnAction((ActionEvent e) -> {
        buttAddAction(e);
    });
}

我正在学习 Oracle TableView 教程,它相当困难。帮助。


问题是TextFieldTableCell.forTableColumn()被输入为字符串值。查看默认实现:

public static <S> Callback<TableColumn<S,String>, TableCell<S,String>> forTableColumn() {
    return forTableColumn(new DefaultStringConverter());
}

你需要的是TextFieldTableCellIntegerStringConverter https://docs.oracle.com/javase/8/javafx/api/javafx/util/converter/IntegerStringConverter.html, 例如:

ageColumn.setCellFactory(TextFieldTableCell.<DataModel, Integer>forTableColumn(new IntegerStringConverter()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TableView,设置可编辑单元格 的相关文章

随机推荐

  • 无法将 null 值插入列...当值不为 null 时

    在我的 C 代码中 我在数据库中有一个插入 但它引发了异常 无法将 NULL 值插入表 Moroccanoil Replicated dbo Boxes 的 BoxID 列 列不允许为空 插入失败 然而 在调试这段代码时 我发现该框实际上不
  • 从 Python 3 调用 Python 2 脚本

    我有两个脚本 主要是用Python 3编写的 第二个是用Python 2编写的 它也使用Python 2库 我想从Python 3脚本调用Python 2脚本中的一个方法 但我不知道如何跨越这座桥 使用以下命令可以非常优雅地相互调用不同的
  • javafxports 项目内的 FXML 文件

    我正在查找有关 javafxports 技术的信息 我可以在该项目中使用 FXML 文件吗 这是我的 build gradle buildscript repositories jcenter dependencies classpath
  • 删除字符串中的空格

    我有以下代码 program main character len 15 abc te st tex t print trim abc end program main 哪个输出 te st tex t 我排除了所有要删除的空白 但事实并非
  • 如何找出正在使用哪个(版本的)函数?

    问题 如何找出正在调用的函数的版本 例如 如果我使用unique在 data frame 上 我假设我正在使用unique data frame 然而 没有unique raster函数 虽然有一个raster unique 但如果我使用
  • 使用 python Gtk 在 gui 窗口中显示终端输出

    我正在开发一个程序 在其中我想要一个窗口来显示终端抛出的输出 就像包管理器那样 例如 如果我发出安装命令 安装过程应该输出到我的窗口而不是终端 有没有办法在 python Gtk 中做到这一点 我使用的是 Ubuntu 13 04 如果你使
  • 在 PyCharm 中使用 matplotlib 时出错:没有属性“FigureCanvas”[重复]

    这个问题在这里已经有答案了 我有这个代码 import matplotlib pyplot as p1lt define data x 1 2 3 4 5 6 y 3 7 14 19 15 11 create line plot p1lt
  • 只有geometry.elementsNeedUpdate 会导致内存分配 - 为什么?

    如果我有一个简单的动画功能 function animate geometry elementsNeedUpdate true allocates memory without geometry faces 0 color requestA
  • 颜色在浏览器和 Photoshop 中看起来不同

    我在 Photoshop 和浏览器中遇到颜色问题 为什么相同的颜色 cccc66 看起来不同 这个在photoshop里http gyazo com a4f4181bf0638d652174f0a7d4f1fe9d png http gya
  • 通过类似开关的参数进行循环的批处理文件?

    我正在尝试循环传递给批处理文件的参数 根据参数 我想设置一个变量标志 true 或 false 以便稍后在脚本中使用 所以我的命令是 myscript bat u p s 我的代码是 FOR f a IN DO IF I a u SET U
  • Flutter 动画:使用 opencontainer 进行 showSearch

    在颤振中animations包 使用容器变换动画的案例之一是 扩展搜索的搜索栏 现在显示扩展搜索的常用方法是使用showSearch函数 我唯一知道修改搜索动画是通过搜索委托 有什么办法可以使用吗openContainer with sho
  • 在 React 应用程序中使用使用 React、Redux 和 React-Redux 完成的组件并使用 Webpack 构建时出错

    我已经使用react redux 和react redux 完成了一个带有商店的组件 代码的捆绑是通过 webpack 完成的 请检查下面附加的代码 当我想在另一个 React 项目中使用 webpack 构建组件时 我遇到了以下问题 Wa
  • kubeadm 连接失败,http://localhost:10248/healthz 连接被拒绝

    我正在尝试在三个虚拟机上设置 kubernetes 来自 centos7 的教程 不幸的是 工人的加入失败了 我希望有人已经遇到过这个问题 在网上发现了两次但没有答案 或者可能猜出出了什么问题 这是我通过 kubeadm join 得到的结
  • 在运行时向 RibbonDropDown 添加项目

    因此 我在功能区中有一个下拉菜单 其中的内容可以在使用时进行更改 Outlook 也很乐意让我 添加 或 插入 项目 只要我添加的项目不超过 1 个即可 如果我尝试这样做 我会被告知索引超出范围 而不是为我扩展上限 我发现 如果我将其插入代
  • DC.js 复合图表在条形中心对齐折线图的点

    我正在尝试创建一个复合图表 我的要求是绘制条形图 折线图和虚线图 为此 我绘制了一个综合图表 现在我遇到的问题是折线图的点从条形图的开头开始 但我需要从线的中心开始 您可以在中看到问题这个 JSFiddle http jsfiddle ne
  • 替换屏幕上显示的参数名称?

    当我定义参数时 例如 PARAMETER pa date TYPE d DEFAULT sy datum 应用程序启动时 如何将 pa date 更改为其他内容 我想将其更改为 选择日期 之类的内容 有任何想法吗 正确的菜单路径是 转到 A
  • 在asp.net 3.5中RegisterClientScriptBlock/RegisterStartupScript的使用

    我无法理解它有什么用 RegisterClientScriptBlock RegisterStartupScript 当我们可以直接在 js文件中编写JavaScript代码 然后在按钮上调用它 ex 2 btnPostback Attri
  • ruby 无法复制 Fixnum

    我有一些这样的代码 ssh files id rsa pub id rsa ssh files each with index do item index ssh files index generate ssh path creator
  • 将 Wamp 服务器升级到 MySQL 8.0.15

    因此 我最近在几个月前安装了 WampServer 并预装了 mySQL 5 7 但我想利用 mySQL 8 附带的 NoSQL 功能 为了更新它 我下载了最新的MySQL版本 将文件夹解压到wamp64的bin目录中 然后 我从 5 7
  • TableView,设置可编辑单元格

    我尝试使表格单元格可编辑 我设法使用其中包含字符串值的两个列来执行此操作 但我无法使用表示整数值的列来执行此操作 带有 X 的地方是编译器收到错误的地方 The method setCellFactory Callback