我已经在谷歌和Stackoverflow上搜索了这个,我只是没有得到给定的例子 . 有人可以向我解释一下 .

我想在表视图的最后一列添加一个按钮,当它被单击时,它应该触发一个监听器并传递按钮行的对象 . 我只是没有从gist.github.com得到以下示例:

这是我当前的完整代码:

public class SchermdeelWerkplaats extends BorderPane{

//ATD moeder klasse met alle collecties etc.

private ATD $;

TableView tabel = new TableView();

Button nieuwTaak = new Button("Nieuwe taak inboeken");

final ObservableList data = FXCollections.observableArrayList();

public SchermdeelWerkplaats(ATD a) {

$ = a;

data.addAll($.agenda);

tabel.setEditable(false);

tabel.setPlaceholder(new Label("Geen taken"));

TableColumn c1 = new TableColumn("datum");

c1.setMinWidth(200);

TableColumn c2 = new TableColumn("type");

c2.setMinWidth(100);

TableColumn c3 = new TableColumn("uren");

c3.setMinWidth(100);

TableColumn c4 = new TableColumn("klaar");

c4.setMinWidth(200);

TableColumn c5 = new TableColumn("Werknemer");

c5.setMinWidth(100);

TableColumn c6= new TableColumn("Auto");

c6.setMinWidth(400);

TableColumn c7= new TableColumn("Actie");

c7.setMinWidth(400);

TableColumn col_action = new TableColumn<>("Action");

col_action.setCellValueFactory(

new Callback,

ObservableValue>() {

@Override

public ObservableValue call(TableColumn.CellDataFeatures p) {

return new SimpleBooleanProperty(p.getValue() != null);

}

});

col_action.setCellFactory(

new Callback, TableCell>() {

@Override

public TableCell call(TableColumn p) {

return new ButtonCell();

}

}

);

c1.setCellValueFactory(

new PropertyValueFactory("date")

);

c2.setCellValueFactory(

new PropertyValueFactory("type")

);

c3.setCellValueFactory(

new PropertyValueFactory("hours")

);

c4.setCellValueFactory(

new PropertyValueFactory("done")

);

c5.setCellValueFactory(

new PropertyValueFactory("employee")

);

c6.setCellValueFactory(

new PropertyValueFactory("car")

);

tabel.getColumns().addAll(c1, c2, c3, c4, c5, c6, c7);

tabel.setItems(data);

setCenter(tabel);

setBottom(nieuwTaak);

}

//letterlijk van internet geplukt en datatype aangepast

private class ButtonCell extends TableCell {

private Button cellButton;

ButtonCell(){

cellButton = new Button("jjhjhjh");

cellButton.setOnAction(new EventHandler(){

@Override

public void handle(ActionEvent t) {

// do something when button clicked

Task record = getItem();

// do something with record....

}

});

}

//Display button if the row is not empty

@Override

protected void updateItem(Task record, boolean empty) {

super.updateItem(record, empty);

if(!empty){

cellButton.setText("Something with "+record);

setGraphic(cellButton);

} else {

setGraphic(null);

}

}

}

}

现在,我必须创建一个 ButtonCell extends TableCell 的部分是可以理解的 . 但是如何将其分配给列?

我理解这一点:

c1.setCellValueFactory(

new PropertyValueFactory("date")

);

但不是这个:

TableColumn col_action = new TableColumn<>("Action");

col_action.setCellValueFactory(

new Callback,

ObservableValue>() {

@Override

public ObservableValue call(TableColumn.CellDataFeatures p) {

return new SimpleBooleanProperty(p.getValue() != null);

}

});

col_action.setCellFactory(

new Callback, TableCell>() {

@Override

public TableCell call(TableColumn p) {

return new ButtonCell();

}

}

);

java表格中添加按钮_如何在JavaFX表视图中添加按钮相关推荐

  1. iphone中怎么添加邮箱_如何在iPhone的Gmail中添加附件

    iphone中怎么添加邮箱 While email is still an incredibly popular form of communication, it's not always a pa ...

  2. react js 添加样式_如何在React JS Application中添加图像?

    react js 添加样式 Hello! In this article, we will learn how to add images in React JS? I remember when I ...

  3. ssas表格模型 权限控制_如何在SQL Server 2016中自动执行SSAS表格模型处理

    ssas表格模型 权限控制 There are many ways to process your SSAS Tabular Model. This can be achieved in SSIS u ...

  4. 谷歌浏览器在怎么添加迅雷_如何在Google搜索结果中添加作者信息

    谷歌浏览器在怎么添加迅雷 How to enable the author information in Google search results as shown for many posts? ...

  5. ubuntu添加路由_如何在Ubuntu,Linux中添加新路由?

    ubuntu添加路由 I have a box with Ubuntu Linux and I want to add a new route to my box. Because I want to ...

  6. ashx在web.config中如何配置_如何在 Istio 1.6 中配置 Prometheus-Operator 和抓取指标

    在 Istio1.4 及以上版本中,可观测性指标的创建.交换和抓取的方式已经发生改变. 以下内容讲述了我如何配置 Prometheus Operator 资源以从 Istio1.6 中抓取指标和安装最 ...

  7. python中options设置_如何在AngularJS的ng-options中设置value属性?

    小编典典 ngOptions(可选) – { comprehension_expression=} –以下形式之一: 对于数组数据源 : label for value in array select ...

  8. mysql查询中使用别名_如何在MySQL选择查询中使用别名?

    要在MySQL中设置别名或替代名称,您需要使用AS关键字.让我们首先创建一个表-mysql> create table DemoTable ( Name varchar(100) ); 使用插入 ...

  9. wps怎么添加附录_如何在word尾注后添加附录、成果等其他内容

    又是一年毕业季,这几天小编忙着给毕业论文调格式.学校的格式要求在参考文献后添加个人研究成果等内容,但是我的参考文献使用尾注形式添加的,word对尾注的定义很严格,它就是默认在文章正文后的.如果你尝试在 ...

最新文章

  1. 致敬YOLO!华科提出YOLOS:基于视觉Transformer的目标检测
  2. QA32中的出口 “STATTEXT”
  3. python环境搭建_搭建Python编程环境
  4. INTERSPEECH 2017系列 | 语音识别之语言模型技术
  5. project设置6天工作制日历
  6. php字节怎么转化成字符串,php将utf-8(3字节)字符串转换成字节
  7. python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例
  8. Android开发实战一之搭建开发环境-附测试实例(已亲测)
  9. Pyhton基础篇(1)-第一个Pyhton程序(已更新)
  10. java synchronized 卖票_Java通过卖票理解多线程
  11. python构造icmp数据包_python – 在scapy中发送ICMP数据包并选择正确的接口
  12. C语言: 输出一个图形
  13. 电子邮件 e-mail原理
  14. Ubuntu引导文件丢失,grub修复(附加重装显卡驱动方法)
  15. Python 微信自动化工具开发系列06_根据用户信息自动回复升级版本(2022年10月可用)
  16. 读庄子-万物齐一和自然无为
  17. Flutter 判断网络可用性
  18. 独家 | 零基础入门优化问题
  19. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡
  20. 华为云服务器双十一报价表出炉最新内容

热门文章

  1. 用PHPExcel读取excel文件内容
  2. STC15单片机上电复位延时180ms才执行程序
  3. android go 联发科 p10,联发科P10和高通骁龙435哪个性能强?联发科P10对比高通骁龙435评测...
  4. centos 7 显示远程窗口到本地
  5. puppy linux php,硬盘/U盘安装Puppy Linux方法
  6. Python基础教程读书笔记(第5章—第6章:条件、循环和其他语句;抽象)
  7. matlab如何在一个区域取电,基于MATLAB带钢卷取电液伺服控制系统的分析
  8. Vue之引用第三方JS插件,CKPlayer使用
  9. Python,菜菜,救救呜呜呜
  10. SoapUI offen used scripts