验证可编辑表格单元格的新值

时间:2016-09-02 07:22:34

标签: java javafx-8

我在TableView中有一个列,只允许“男性”或“女性”值。

此列中的单元格是可修改的,当用户输入错误的字符串(如“Test”)时,它会创建一个警告,通知他们错误。

我目前遇到的问题是,在关闭警报框后,它会创建另一个与前一个警报框相同的警报框,此过程将永远循环。

我的代码是:

    genderColumn.setCellFactory((TreeTableColumn<Person, String> param) -> new GenericEditableTreeTableCell<Person, String>(new TextFieldEditorBuilder()));
    genderColumn.setOnEditCommit((CellEditEvent<Person, String> t)->{

        if(t.getNewValue().toLowerCase().equals("male")){
            ((Person) t.getTreeTableView().getTreeItem(t.getTreeTablePosition().getRow()).getValue()).getGenderProperty().set("Male");; 
        } else if (t.getNewValue().toLowerCase().equals("female")){
            ((Person) t.getTreeTableView().getTreeItem(t.getTreeTablePosition().getRow()).getValue()).getGenderProperty().set("Female");;   
        } else {
            Alert alert = new Alert(AlertType.ERROR);
            alert.setTitle("Invalid Gender");
            alert.setContentText("Please specify the gender as either Male or Female");
            alert.showAndWait();
            ((Person) t.getTreeTableView().getTreeItem(t.getTreeTablePosition().getRow()).getValue()).getGenderProperty().set(t.getOldValue());;    

        }

    });

您能否帮我理解/解决为什么会不断生成警报框?

谢谢。

0 个答案:

没有答案