当前位置: 首页 > 知识库问答 >
问题:

JavaFX-如何在可编辑TableView中检查用户输入

轩辕源
2023-03-14
regularityColumn.setMinWidth(130);
      regularityColumn.setCellValueFactory(new PropertyValueFactory<>
              ("taskTypeRegularity"));
table.getColumns().addAll(....., regularityColumn);

如果找到manager用户,则将表设置为可编辑,并执行以下操作:

regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
                new IntegerStringConverter()));
    regularityColumn.setOnEditCommit(e -> {
        TaskType selectedTask = table.getSelectionModel()
                    .getSelectedItem();
        selectedTask.setTaskTypeRegularityInt(e.getNewValue());
});

共有1个答案

笪煌
2023-03-14

创建自己的StringConverter。异常来自IntegerStringConverter

所以把这个换掉...

regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
            new IntegerStringConverter()));

像这样的东西...

regularityColumn.setCellFactory(TextFieldTableCell.forTableColumn(
            new StringConverter<Integer>(){
            Integer fromString(String s) {
                 //convert the string to integer yourself and catch the exception
            }

            String toString(Integer i) {
                 //convert the integer to String yourself and catch the exception
            }
        }
    )
);
 类似资料:
  • 我正在尝试在JavaFX中创建一个可编辑的TableView,显示存储在自定义类StocktingLocation中的各种值。其中一些值是字符串,而另一些是各种数值数据类型(短整型、整型、双精度型),并且某些字符串具有与之关联的特定必需格式。我正在使用类似于以下代码块的东西来定义每个表列,使用SortStringConverter()或类似的东西来获取文本输入并将其转换为目标数据类型: 但是,我想

  • 在JavaFX 8中,我尝试在将新行添加到表中后编辑单元格,以优化用户体验。 选择了正确的行,但单元不会进入编辑模式。嗯,我很偶然地看到了这种情况,但很难再现。我做错了什么?

  • 问题内容: 我的TableView由几列组成,并使用以下单元工厂包装文本: 这非常适合显示不可编辑的文本。 最后一列必须是可编辑的,并且可以跨越几行(而不是TableView行)。为了防止出现省略号,我想将新编辑的文本换行。 经过数小时的尝试,我似乎仍然无法正常工作。我有以下代码来编辑单元格,并且无法进行包装。 不起作用的方法来包装我的编辑文本: 以下代码是列设置: 对于常规的不可编辑文本,我使用

  • 我试图在JavaFX中创建一个可编辑的TableView。我从2个连接的表中获取数据,所以我在TableView中使用对象。 我已经将表和列设置为可编辑,,我尝试对列的执行操作(例如,类似于textfield)。 我还没能解决这个问题。 那么,如何使包含对象的单元格可编辑呢?谢谢你的回答

  • 我构建了一个用于显示数据的小JavaFX TableView。用户应该能够在桌面视图中编辑数据。问题是:某些字段只允许特定值。如果用户输入了错误的值,则该字段设置为0。 这是我的班级: 所以当我编辑一个tableviewcell并输入“q”(这个值是不允许的)并按Enter时,调试器在上面的catch块中跳转,将观察列表中的特定值设置为0(我可以在调试器中看到这一点,当我展开这个对象时)但是tab

  • 我有一个JavaFX TableView,它有两列。此表使用观察列表作为其模型。 我想将其中一个设置为可编辑,另一个设置为不可编辑。 首先,我尝试了FXML方法: 但这不管用。表格始终不可编辑。 我还尝试了java方式: 但这也不管用。所有的桌子都不能修改。 如果TableColumn有一个可编辑的属性,那么它应该可以单独设置。 如果你知道我哪里做错了,请帮帮我。谢谢。 PS:measureNum