首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在数字键释放上编辑tableview单元格并将按下的键放入TextFieldTableCell?

在数字键释放上编辑TableView单元格并将按下的键放入TextFieldTableCell,可以通过以下步骤实现:

  1. 创建一个TableView,并设置其数据源为一个ObservableList。
  2. 创建一个自定义的TableCell类,继承自TextFieldTableCell,并重写startEdit()和commitEdit()方法。
  3. 在startEdit()方法中,获取按下的键,并将其存储在一个变量中。
  4. 在commitEdit()方法中,将存储的按键值设置给TextField,并调用父类的commitEdit()方法。
  5. 在TableView的列中,使用setCellFactory()方法设置自定义的TableCell类。

下面是一个示例代码:

代码语言:txt
复制
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.stage.Stage;

public class TableViewEditExample extends Application {

    public static class Person {
        private final StringProperty name;

        public Person(String name) {
            this.name = new SimpleStringProperty(name);
        }

        public StringProperty nameProperty() {
            return name;
        }
    }

    @Override
    public void start(Stage primaryStage) {
        TableView<Person> tableView = new TableView<>();
        ObservableList<Person> data = FXCollections.observableArrayList(
                new Person("John"),
                new Person("Jane"),
                new Person("Bob")
        );
        tableView.setItems(data);

        TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
        nameColumn.setCellFactory(column -> new EditableTableCell());

        tableView.getColumns().add(nameColumn);

        primaryStage.setScene(new Scene(tableView, 200, 200));
        primaryStage.show();
    }

    public static class EditableTableCell extends TextFieldTableCell<Person, String> {

        private String keyPressed;

        public EditableTableCell() {
            super();
        }

        @Override
        public void startEdit() {
            super.startEdit();
            if (isEditable()) {
                keyPressed = ""; // 清空按键值
            }
        }

        @Override
        public void commitEdit(String newValue) {
            super.commitEdit(newValue);
            if (keyPressed != null && !keyPressed.isEmpty()) {
                setText(keyPressed); // 将按键值设置给TextField
            }
        }

        @Override
        public void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);
            if (empty) {
                setText(null);
            } else {
                setText(getItem());
            }
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

这个示例代码演示了如何在数字键释放上编辑TableView单元格,并将按下的键放入TextFieldTableCell中。在自定义的EditableTableCell类中,重写了startEdit()和commitEdit()方法,分别用于获取按下的键和将按键值设置给TextField。在TableView的列中,使用setCellFactory()方法将EditableTableCell类设置为单元格的工厂。

这个示例中使用了JavaFX框架来创建和显示TableView,你可以根据自己的需求选择适合的框架和语言来实现相同的功能。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网平台(IoT Explorer):https://cloud.tencent.com/product/iotexplorer
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBCAS):https://cloud.tencent.com/product/tbcs
  • 腾讯云元宇宙解决方案:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【学习】如何快速批量删除Excel单元格“换行符”

    在Excel单元格Alt+Enter就会进行换行,就像在Word中回车一样。...如果许多单元格中都包含这样“换行符”,现在要将其全部删除掉,让这些单元格内容都变成一行显示,该如何操作呢?...方法一:取消自动换行 在Excel单元格快捷Alt+Enter进行换行时,该单元格就被设置成了“自动换行”,如果要将这些单元格“自动换行”效果取消,也就是删除“换行符”,方法如下:...但这种方法有个缺点,当选择这些单元格时,编辑栏中内容仍是换行,而且双击该单元格又会自动变成“自动换行”了。...方法二:查找替换法 Step1:快捷Ctrl+H,打开“查找和替换”对话框; Step2:选择“查找内容”后文本框,按住Alt在数字键盘中输入“0010”。

    17.7K30

    PyQt5数据库开发1 4.3 QSqlTableModel 之 相关槽函数实现(多图长文详解)

    发现bug 原因是这些按钮在数据库没打开时不应该能。排序相关功能也有类似的错误 4....去数据库查一原始数据 3. 运行程序 涨工资涨工资后  都涨了10% 4. 去数据库查一现在数据 数据全改了 5....修改数据 将黄蓉工资改为200,出生日期改为4月29日,备注也改一 点完后   取消,数据行变回原样  再改一次,这次保存 查询数据库,发现数据被改了...改一黄蓉性别和省份,保存 数据库里查查,改掉了 九、tableview里数据修改 1. bug 在右边groupbox里数据修改没问题,在左边tableview里面修改就有问题...自定义代理组件 tableview默认单元格编辑组件是QlineEdit,对输入数据无法限制。可以为某列设置自定义代理组件,比如QcommoBox。

    1.8K30

    PyQt5数据库开发1 4.3 QSqlTableModel⑥

    数据修改修改前数据修改数据将黄蓉工资改为200,出生日期改为4月29日,备注也改一点完后取消,数据行变回原样再改一次,这次保存查询数据库,发现数据被改了改一黄蓉性别和省份,保存数据库里查查...,改掉了tableview里数据修改bug在右边groupbox里数据修改没问题,在左边tableview里面修改就有问题弹出修改框,随便乱改,变成下面的样子保存,去数据库里面查,发现已经把性别改成了不合理数据...X在右侧groupbox里,由于限制了性别只能去男和女,所以显示不出来X要解决这个问题,要对tableview里面数据修改进行限制自定义代理组件tableview默认单元格编辑组件是QlineEdit...在上面的bug中,希望把性别的编辑组件改成QcommoBox,只能选择某些项(比如男和女),而不能随便输入。...新建文件myDelegates.py,创建一个修改代码,添加自定义组件在opentable函数中插入红色框框中代码运行程序,发现tableview里面的变化添加和插入按钮添加代码import模块插入红色框框部分代码测试添加功能查数据库

    20400

    Excel小技巧:在Excel中添加复选标记15种方法(上)

    图4 方法3:使用键盘快捷插入复选标记符号 可以使用快捷快速输入复选标记符号。按住Alt同时,字键盘上0254。...注意:需要使用键盘上专用字键盘,使用键盘中字母上方数字行将不起作用。...方法4:使用CHAR函数创建复选标记 在单元格中,输入公式: =CHAR(252) 并将单元格字体设置为Wingdings。...) 方法6:从网上复制和粘贴复选标记 在网上搜索复选标记将返回大量结果,你只需复制找到自己满意复选标记并将其粘贴到Excel中即可。...✓✔☑✅ 方法7:使用Emoji键盘插入复选标记 在工作表中,Windows+点(.)组合,会弹出如下图5所示窗口,在其中找到并选取复选标记输入。

    3.2K30

    PyQt5数据库开发1 4.3 QSqlTableModel④下部

    建立tableview与右侧组件关联当前无关联当前tableview里面选择某个行,右侧是无反应添加关联代码插入同时import若干新模块运行程序发现右边groupbox出现第一条数据。...无论左边tableview点哪个单元格,右边groupbox都不跟着变化添加选择行变化信号与槽函数运行程序换个地方点击发现tableView可以选择多行按住Ctrl,在多条记录上选择,发现可以选多行添加代码...,限制tableView在__init__函数中限制运行程序,发现没法选多行了排序排序下拉框没内容当前这个下拉框里面是没东西,运行时候点没反应补充相关函数和调用运行程序,发现排序下拉框有内容了排序下拉框信号与槽添加槽函数...注意要在前面写上@pyqtSlot(int),说明其参数为int类型运行程序换一种排序方式升序和降序两个单选按钮信号与槽函数降序添加槽函数运行测试升序降序功能数据过滤添加槽函数测试过滤功能发现bug原因是这些按钮在数据库没打开时不应该能...form文件拷贝到Eric6工程目录,然后在Eric6编译form(因为改动没有涉及资源,所以直接在eric6编译form就行了)运行程序现在数据库没打开时,排序和过滤相应按钮都没法了添加代码,让数据库打开时

    19000

    C++ Qt开发:StandardItemModel数据模型组件

    Model/View 是Qt中一种数据编排结构,其中Model代表模型而View则代表视图,视图是显示和编辑数据界面组件,而模型则是视图与原始数据之间接口,通常该类结构都是用在数据库中较多,例如模型结构负责读取或写入数据库...; 如上图所示ToolBar组件中我们绑定了一些快捷及ICO图标,这些信息通过图形化方式进行了关联; 1.1 初始化表格 为了能充分展示QStandardItemModel模型组件使用,我们首先简单介绍一该组件常用方法与描述...首先笔者先来演示一如何tableView组件与QStandardItemModel组件进行绑定操作,其实绑定很简单只需要调用ui->tableView->setModel即可将tableView组件与...用于处理表格中选择操作,并将它们关联到TableView组件上。...,此时打开文件,可看到如下图所示效果; 1.3 插入与删除 首先来解释一如何添加一行新行,其实添加与插入原理一致,唯一区别在于,添加一行新数据是在行尾加入,这个可以使用model->columnCount

    36210

    Win10 Jupyter相关杂记

    ,然后相应实现对文档操作。...,你只想留下图表和表格 命令模式单元格操作: 如果单元格边框为绿色(即为编辑模式),请按ESC,退回到命令模式。...在命令模式被选中单元采用灰色边框显示。上下方向可以移动选择框。 ? 绿色 ?...蓝色 数字键:将单元格变为标题类型,数字越大标题越小 L: 显示代码行号 m: 将单元格变为markdown类型,在markdown类型单元格内可以编写文档 y: 将单元格变为代码类型,在代码类型单元格中输入...Python代码 d: d按键删除单元格 z: 撤销最后删除单元格操作 a: 在当前单元格之上创建一个新单元格 b: 在当前单元格之下创建一个新单元格 x: 剪切当前单元格 c: 复制当前单元格

    91320

    visual studio运行程序快捷_visual studio快捷方式在哪

    五、Word 中快捷 5.1.常规快捷 Ctrl+A 选取整篇文档 Ctrl+B 将所选文档加粗 Ctrl+C 复制所选内容并将放入剪贴板 Ctrl+D 修改选定字符格式 Ctrl+...Ctrl+O 打开已有的文档或模板 Ctrl+P 打印文档 Ctrl+S 保存当前活动文档 Ctrl+U 给所选内容添加下划线 Ctrl+V 在插入点插入剪贴板内容 Ctrl+X 剪切所选内容并将放入剪贴板...CTRL+SHIFT+右箭头 选定或取消右面的一个字 6.5.单元格编辑快捷 Ctrl+C 复制选定单元格 两次Ctrl+C 显示 Microsoft Office 剪贴板(多项复制与粘贴...,并将插入点放置到单元格内容末尾 Backspace 编辑活动单元格,然后清除该单元格,或在编辑单元格内容时删除活动单元格前一字符 Delete 删除插入点右侧字符或删除选定区域中内容...Ctrl+Shift+* 在数据透视表中,选定整个数据透视表 Ctrl+/ 选定包含活动单元格数组 Ctrl+Shift+O 选定含有批注所有单元格 Ctrl+\ 在选定行中,选取与活动单元格值不匹配单元格

    4.8K10

    常用快捷大全

    五、Word 中快捷 5.1.常规快捷 Ctrl+A 选取整篇文档 Ctrl+B 将所选文档加粗 Ctrl+C 复制所选内容并将放入剪贴板...Ctrl+S 保存当前活动文档 Ctrl+U 给所选内容添加下划线 Ctrl+V 在插入点插入剪贴板内容 Ctrl+X 剪切所选内容并将放入剪贴板...选定或取消右面的一个字 6.5.单元格编辑快捷 Ctrl+C 复制选定单元格 两次Ctrl+C 显示 Microsoft Office 剪贴板(多项复制与粘贴...Ctrl+Z 撤消上一次操作 F2 编辑活动单元格并将插入点放置到单元格内容末尾 Backspace 编辑活动单元格,然后清除该单元格,或在编辑单元格内容时删除活动单元格...+空格 在选定了一个对象情况,选定工作表上所有对象 Ctrl+6 在隐藏对象、显示对象和显示对象占位符之间切换 Ctrl+Shift+* 在数据透视表中

    4.3K10

    C++ Qt开发:TableView与TreeView组件联动

    ,底部保留两个按钮,按钮1用于该表表格行列个数,按钮2则用于设置TableView表格表头参数,整个表格我们将其设置为可编辑状态。...在如下代码中我们通过model->rowCount()以及model->columnCount()获取到父UI界面中tableView表格行列数,并通过ptr->setRowColumn将这些数据设置到了子对话框编辑框上面...对话框数据初始化 int ref = ptr->exec(); // 以模态方式显示对话框 if (ref==QDialog::Accepted) // OK...,对话框关闭 { // 当BtnOk被时,则设置对话框中数据 int cols=ptr->columnCount(); model->setColumnCount...,需要将当前表头元素复制到strList列表容器内,并通过使用子对话框中ptr->setHeaderList将其拷贝到子对话框中,并通过QDialog::Accepted等待对话框修改按钮,如下代码所示

    38910

    Excel编程周末速成班第21课:一个用户窗体示例

    步骤2:设计窗体 要创建新空白用户窗体并设置其属性,执行以下操作: 1.Alt+F11打开VBA编辑器。 2.在工程窗口中,单击标记为VBAProject(Addresses)条目。...如你在第20课中所学习,此事件接收一个参数,该参数标识所。如果该可以接受,则将其传递;否则取消。 在VBA联机帮助中KeyCode值列表中,你可以看到0到9代码值为48到57。...要将代码添加到窗体,打开窗体代码编辑窗口,然后为txtZip控件添加KeyDown事件过程,将清单21-2中代码添加到该过程中。注意使用Beep语句,如果下了不正确,它将导致系统发出声音。...,而不接受使用数字键盘输入数字。...你可能已经注意到“完成”和“下一步”按钮共享一个任务,该任务正在工作表中输入经过验证数据。每当需要在不止一种情况执行任务时,程序员都会将此视为将所需代码放入一个过程中机会。

    6.1K10

    .NET控件集ComponentOne 2018V3发布:新增图表动画及迷你图

    它通常嵌入在数据网格中。因此,FlexGrid 现在可以在列中显示迷你图,并可以更容易地在 FlexGrid 单元格中绘制趋势图。...通过FlexGrid提供示例,您将看到如选择数据、单元格自定义、条件格式、过滤、RowDetails 功能、单元格合并以及许多其他有趣功能演示。...xaml2.png ​ AML C1Icon 日程控件 ComponentOne 新 TableView Scheduler 控件用于在表视图中显示议程,可以开发人员或最终用户指定进行分组、排序或筛选...xaml3.png ​ XAML Scheduler TableView AgendaView 在表视图中显示日期分组议程,其中单个表行代表单个议程。...用户可以通过双击某一个议程并打开 EditAppointment 对话框来编辑。 此视图始终默认日期升序排序,并且没有行标题或列标题。

    2.5K20

    scrolllock_scroll作用

    中文名称:滚动锁定   此键后在Excel等上、下键滚动时,会锁定光标而滚动页面;如果放开此键,则按上、下键时会滚动光标而不滚动页面。 键盘上三个灯分别是什么??...如果这个灯未亮的话,那字键字键是没反应,该一般在数字键7上面。 第二个灯相信对电脑有点常识都知道了。它是字母大小写切换,它是按住caps lock也就是大写锁定意思。...它是在F12右边第二个,如果该灯点亮就是开启了滚动锁定意思,此键后在Excel等上、下键滚动时,会锁定光标而滚动页面。如果放开此键,则按上、下键时会滚动光标而不滚动页面。...像我们平时在超市购物时候,会看到收银员敲小键盘上敲得很快,根本不需要移开那块区域,就是她们已经将NumLock运用到炉火纯青地步了,当打错字了后,Num Lock,把小键盘指示灯关闭...许多用户使用电脑很久了,可能还从来没有用过该。该名称为”滚动锁定”。在一些特定程序如excell中,我们按键盘上方向时,会将光标移至下一个单元格中。

    1.5K20

    C++ Qt开发:SqlRelationalTable关联表组件

    addItem()放入到第一个组件内。...,通过利用该文本内容在数据库内执行二次查询并将查询结果填充之对应第二个ComboBox组件内即可实现组件联动选择效果,其槽函数代码如下所示;void MainWindow::on_comboBox_user_activated...案例,运行后可自行选择不同用户名,则此时会输出该用户名所对应地址表,如下图所示;1.2 TableView接着,我们继续以TableView组件为例,简单介绍一如何实现组件与数据绑定,首先我们需要创建一个表并插入几条测试记录...indexColumn: 关联表中与当前表关联名称,通常是外列。displayColumn: 关联表中要显示名称,通常是与外列相关实际数据。...使用 setRelation 方法可以使得在表格中更容易地显示和编辑关联数据,而不是直接显示外值。

    26710

    这件神器,每个 Python 学习者都值得一试

    如何使用 回到 notebook 界面,可以看到,从上到分别是: 当前文件标题,以及最后一次保存时间 菜单栏,包括文件操作,各种编辑选项,内核控制,以及帮助等菜单 工具栏,从左到右分别是:保存文件...当你点击右上角运行按钮【 】,或者【Shift + 回车】组合,该单元格代码将会被运行。...你在这个单元格中输入 markdown 标记时,会自动解析成不同大小,不同格式文字标记: 当你写完这些文本时,你可以“运行”这个单元格,或是【Shift + 回车】快捷,于是那些 markdown...表示你正在编辑代码内容: 在编辑时,你可以 ESC 退出编辑模式,回到命令模式。...想了解编辑模式和命令模式可用键盘快捷都有哪些,你可以在菜单栏选择 Help(帮助) -> Keyboard Shortcuts(键盘快捷),系统会列出具体命令清单: 保存记录点 Jupyter

    89840

    这件神器,每个 Python 学习者都值得一试

    不过先不急着关闭它,让我们切回 notebook 文件里,好好玩弄一它(…),熟悉一各种功能吧! 03 如何使用 ?...】,或者【Shift + 回车】组合,该单元格代码将会被运行。 ? 运行之后输出结果将会显示在单元格内容正下方,然后输入光标就会跳转到下一个格子,方便你继续写更多代码。...当你写完这些文本时,你可以“运行”这个单元格,或是【Shift + 回车】快捷,于是那些 markdown 格式记号会被渲染成文本。效果如下: ?...如果你点击代码区域,则单元格就进入编辑模式,光标将在你点击位置闪烁,而左边指示条也变成绿色,表示你正在编辑代码内容: ? 在编辑时,你可以 ESC 退出编辑模式,回到命令模式。...想了解编辑模式和命令模式可用键盘快捷都有哪些,你可以在菜单栏选择 Help(帮助) -> Keyboard Shortcuts(键盘快捷),系统会列出具体命令清单: ?

    90420

    C++ Qt开发:SqlTableModel映射组件应用

    在多数情况我们需要使用SQL方法来维护数据库,但此方式相对较为繁琐对于表格等数据编辑非常不友好,在Qt中提供了QSqlTableModel模型类,它为开发者提供了一种直观方式来与数据库表格进行交互...在接下来章节中,我们将学习如何配置 QSqlTableModel、与数据库进行交互、实现数据动态显示和编辑,首先读者应绘制好UI界面,本次案例界面稍显复杂,读者可自行完成如下案例绘制;以下是 QSqlTableModel...1.1 初始化组件首先我们来看一MainWindow初始化部分是如何工作,主要实现了以下功能:打开数据库首先使用SQLite数据库驱动连接名为"database.db"数据库文件。...,当行被点击后执行获取name/mobile字段,并放入映射数据集中lineEdit编辑框中,使其能够动态显示数据列表。...当程序运行后则可以看到如下图所示初始化部分;1.2 数据处理1.2.1 新增一条记录当用户on_pushButton_add_clicked按钮时,则会在表格中新增一条记录,并设置默认值功能。

    26300
    领券