如何添加一个对话框,以显示在这种情况下找不到项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何添加一个对话框,以显示在这种情况下找不到项目相关的知识,希望对你有一定的参考价值。

通过在文本框中输入ID来搜索javafx表视图的功能:

searchParts.setOnAction(e -> { 
            Integer searchId = Integer.parseInt(txtsearchParts.getText());
            partsTable.getItems().stream().filter(part -> part.getPartID()==searchId).findAny();
            partsTable.getItems().stream()
            .filter(part -> part.getPartID() == searchId)
            .findAny()
            .ifPresent(part -> {
                partsTable.getSelectionModel().select(part);
                partsTable.scrollTo(part);    
            });
        });
答案

试试这个

searchParts.setOnAction(e -> {
    Integer searchId = Integer.parseInt(txtsearchParts.getText());

    // copy / paste error ?
    //partsTable.getItems().stream()
    //        .filter(part -> part.getPartID() == searchId)
    //        .findAny();

    Optional optional = partsTable.getItems().stream()
            .filter(part -> part.getPartID() == searchId)
            .findAny();

    if(optional.isPresent()) {
        partsTable.getSelectionModel().select(optional.get());
        partsTable.scrollTo(optional.get()); 
    }
    else {
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.initOwner(partsTable.getScene().getWindow());
        alert.initModality(Modality.APPLICATION_MODAL);
        alert.setHeaderText("Item not found!!!");
        alert.setContentText(null);

        alert.show();
    }
});

以上是关于如何添加一个对话框,以显示在这种情况下找不到项目的主要内容,如果未能解决你的问题,请参考以下文章