2017-12-28 29 views
0

eine Funktion einen javafx Tableview durch Eingabe einer ID in einem Textfeld suchen:Wie ein Dialogfeld fügen Sie ein Element zu zeigen, dass nicht gefunden wird, wenn es der Fall ist

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);  
      }); 
     }); 
+0

Bitte formulieren Sie die Frage, aktuelle und gewünschte Ausgabe. – Hexfire

Antwort

0

dieses

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(); 
    } 
}); 
versuchen
+0

Vielen Dank für Ihre Antwort. Ich musste einen generischen Typ wie folgt hinzufügen, um es zu funktionieren: Optional optional – Zora

Verwandte Themen