2017-05-25 4 views
0

Ich habe ein kleines Problem (es ist wirklich nicht so groß, aber es ärgert mich), denn nachdem ich einen Datensatz aus meiner Tabelle löschen, möchte ich auch meine löschen Schaltfläche jetzt zu disapear, funktioniert es wie folgt aus:Löschen-Taste in TableView nicht verschwinden

VOR sie auf den Button Taste LÖSCHEN:

enter image description here

nACH klicken erster des Datensatz löschen Taste:

enter image description here

Auch dies ist die Funktion, dass ich dieses Ereignis behandeln bin mit:

private class ButtonCell extends TableCell<Record, Boolean> { 
    final Button cellButton = new Button("Delete"); 

    ButtonCell(){ 

     cellButton.setOnAction(new EventHandler<ActionEvent>(){ 

      @Override 
      public void handle(ActionEvent t){ 

       Alert alert = new Alert(Alert.AlertType.CONFIRMATION); 
       alert.setTitle("Confirmation Dialog"); 
       alert.setHeaderText("Delete the entire row?"); 

       Optional<ButtonType> result = alert.showAndWait(); 
       if (result.get() == ButtonType.OK){ 
        Animal currentAnimal = (Animal) ButtonCell.this.getTableView().getItems().get(ButtonCell.this.getIndex()); 
        data.remove(currentAnimal); 
        cellButton.setVisible(false); 
       } 
      } 
     }); 

    } 
    //Display button if the row is not empty 
    @Override 
    protected void updateItem(Boolean t, boolean empty) { 
     super.updateItem(t, empty); 
     if(!empty){ 
      setGraphic(cellButton); 

     } 


    } 
} 
+0

Es sollte eine Antwort geben? https://stackoverflow.com/questions/22574239/how-to-delete-a-javafx-tableview-row – Slideroh

Antwort

2

starten:

@Override 
protected void updateItem(Boolean t, boolean empty) { 
    super.updateItem(t, empty); 
    if(empty){ 
     setGraphic(null); 
    } else { 
     setGraphic(cellButton); 
    } 
} 
+0

Vielen Dank! Funktioniert perfekt :) –

Verwandte Themen