Javafx TableView编辑验证

好的

我构建了一个JavaFX TableView来显示数据。用户应该能够在表视图中编辑数据。问题是:在某些字段中仅允许使用特定值。如果用户输入了错误的值,则该字段将设置为0。

这是我的课:

private ObservableList shots;

@FXML
void initialize() {
    this.shots = FXCollections.observableArrayList(match.getShots()); // values from database
    tblShots.setItems(shots);
    tblShots.setEditable(true);
    lblserienid.setText(GUIConstants.idPlaceHolder);
    lblresult.setText(GUIConstants.idPlaceHolder);
    colShotID.setCellValueFactory(new PropertyValueFactory<Schuss, String>("idSchuss"));
    colRing.setCellValueFactory(new PropertyValueFactory<Schuss, String>("ringString"));
    colRing.setCellFactory(TextFieldTableCell.forTableColumn());
    colRing.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Schuss, String>>() {
        @Override
        public void handle(TableColumn.CellEditEvent<Schuss, String> t) {
            Schuss s = (Schuss) t.getTableView().getItems().get(
                    t.getTablePosition().getRow());

            try {
                int ring = Integer.parseInt(t.getNewValue());
                s.setRing(ring);
            } catch (Exception ex) {
                s.setRing(0);
            }
            SerienauswertungViewController.this.refreshTable();
        }
    });
    colRing.setEditable(true);
    // .... omitted
  }

private void refreshTable(){
  if(shots.size()>0) {
        btnDeleteAll.setDisable(false);
        btnEdit.setDisable(false);
        int res = 0;
        for(int i=0;i<shots.size();i++){
            Schuss s = (Schuss)shots.get(i);
            res += s.getRing();
        }
        lblresult.setText(""+res);

    }
    else {
        btnDeleteAll.setDisable(true);
        btnEdit.setDisable(true);
        lblresult.setText(GUIConstants.idPlaceHolder);
    }
}

因此,当我编辑tableviewcell并输入“ q”(不允许使用此值)并按Enter时,调试器会跳到上面的catch块中,将observablelist中的特定值设置为0(在调试器中可以看到我扩展了此对象),但tableviewcell仍然显示q而不是0(系统已对其进行了更正)...

为什么tableview不能显示observablelist-Object的正确值?

好的

Okey,这似乎是一个错误。我在这里提到一项工作

tblShots.getColumns().get(1).setVisible(false);
tblShots.getColumns().get(1).setVisible(true);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JavaFX中编辑TableView

来自分类Dev

JavaFX TableView 编辑不编辑

来自分类Dev

为什么我的JavaFX Tableview无法编辑?

来自分类Dev

TableView中的JavaFX Spinner编辑器

来自分类Dev

javafx无法编辑TableView行数据

来自分类Dev

javafx无法编辑TableView行数据

来自分类Dev

如何使JavaFX TableView单元格可编辑?

来自分类Dev

JavaFX将可编辑的TableView保存到SQL

来自分类Dev

JavaFX TableView scrollTo()导致错误的行开始编辑

来自分类Dev

JavaFX的TableView中可编辑的(真正的)不工作

来自分类Dev

如何使JavaFX TableView单元格可编辑?

来自分类Dev

JavaFX将可编辑的TableView保存到SQL

来自分类Dev

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

来自分类Dev

JavaFX:不具有JavaFX样式属性的可编辑TableView

来自分类Dev

如何在 JavaFX 中的可编辑 TableView 中获取上次编辑的项目

来自分类Dev

TableView中的JavaFX属性

来自分类Dev

JavaFX Derby TableView

来自分类Dev

JavaFX TableView排序策略

来自分类Dev

JavaFX TableView删除问题

来自分类Dev

JavaFX TableView频繁更新

来自分类Dev

JavaFX的从TableView中删除

来自分类Dev

使javafx TableView像JTable

来自分类Dev

JavaFX TableView与SceneBuilder

来自分类Dev

JavaFX从ObservableList填充TableView

来自分类Dev

在JavaFX tableView中导航

来自分类Dev

在 javafx 中填充 tableview

来自分类Dev

JavaFX tableview 清除集合

来自分类Dev

JavaFX TableView 滚动

来自分类Dev

JavaFX - TableView 未填充