为TableView的行实现双击事件
来源:互联网 发布:linux 删除文本前n行 编辑:程序博客网 时间:2024/05/17 07:24
背景说明
当我们使用一个表格来展示信息时,存在一个场景——查看或者编辑指定行的数据。
一般我们有以下几种操作方式:
- 直接在表格行尾添加一个编辑按钮
- 行首增加一个checkbox,选中后再点击表格上方或者下方的查看/编辑按钮
- 双击表格中的一行来响应事件
我这里简单的介绍第三种方式的实现方法。
双击事件
我假设你已经知道如何创建一个TableView了,在我们需要为添加列时,我们要对TableColumn的CellFactory进行设置。
我专门写一个方法来产生TableColumn:
private TableColumn<Task, String> getColumn(String columnName, String propertyName, int width, int maxWidth) { TableColumn<Task, String> tableColumn = new TableColumn<>(columnName); tableColumn.setCellFactory(new TaskCellFactory()); tableColumn.setCellValueFactory(new PropertyValueFactory<>(propertyName)); tableColumn.setMinWidth(width); tableColumn.setPrefWidth(width); tableColumn.setMaxWidth(maxWidth); return tableColumn;}
然后通过以下代码对产生的TableColumn进行使用:
TableColumn c = getColumn("任务标题", "taskName", 300, 1000);
在getColumn()这个方法中,我通过tableColumn.setCellFactory(new TaskCellFactory());
设置了CellFactory。TaskCellFactory的内容如下:
private class TaskCellFactory implements Callback<TableColumn<Task, String>, TableCell<Task, String>> { @Override public TableCell<Task, String> call(TableColumn<Task, String> param) { TextFieldTableCell<Task, String> cell = new TextFieldTableCell<>(); cell.setOnMouseClicked((MouseEvent t) -> { if (t.getClickCount() == 2) { view(); } }); //cell.setContextMenu(taskContextMenu); return cell; }}
整个实现的核心就在于重点就在于实现Callback<TableColumn<Task, String>, TableCell<Task, String>>
然后返回JavaFX API自带的TextFieldTableCell
。并在call()方法中,为cell增加了双击事件的处理。在我的实现中,双击时会调用view()方法来实现查看的逻辑。
在这里你可以做你想做的其他效果,比如为表格设置上下文菜单,右键时显示查看/删除等。
http://www.alanzeng.cn/2015/10/tableview-double-click/
0 0
- 为TableView的行实现双击事件
- 实现 gridview行的双击事件
- DataGrid 双击事件的实现
- JList 双击事件的实现
- 双击事件的简单实现
- Android双击事件的实现
- android 双击事件的实现
- 如何实现TreeView的双击事件? [转]
- 如何实现TreeView的双击事件?
- flex中双击事件的实现
- UITableView实现双击事件的方法
- 双击和多击事件的实现
- RxJava实现view的双击事件
- cocos 触摸双击事件的实现
- dev GridView明细行实现双击事件
- combobox实现双击事件
- TreeView 实现双击事件
- 实现鼠标双击事件
- codevs 1001 舒适的路线
- 第7周项目3 - 负数把正数赶出队列
- 银联基于OpenStack的金融私有云建设实践(转)
- 第六周项目3--括号的匹配
- 第7周、项目2—建立链队算法库
- 为TableView的行实现双击事件
- 数制的转换
- 第四周项目4 建立双链表算法库
- 第6周SHH数据结构—【项目3-括号的匹配 】
- 第四周项目5猴子选大王
- struts学习笔记
- 2015-10-16 【项目1 - 建立顺序环形队列算法库】
- 如何让变量的展开推迟
- IOS 更新Button title 闪动解决