2016-06-22 7 views
0

Zuerst entschuldigung für mein Englisch :) Ich habe einen seltsamen Fehler ... Ich möchte einige Spalten in JavaFX TableView nach dem Drücken der Taste ausblenden. Der Code ist so einfach wie möglich:JavaFX - Fehler beim Rendern von Zellen nach dem Ausblenden von Spalten

   column8.visibleProperty().set(false); 
       column9.visibleProperty().set(false); 

(ich auch mit Entfernen mit dem gleichen Ergebnis getestet). Das Problem ist, dass in "Nachbarzelle" habe ich "Separator" von irgendwo nach dieser Aktion. Ich benutze Cellfactories ist mein Code. Für einen der versteckten Zelle ist es

column8.setCellFactory(column -> { 
    return new TableCell<Anfrage, Mandant>() { 
     @Override 
     protected void updateItem(Mandant item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getNameMandant());      
      } 
     }         
    };      
}); 

Und für die Zelle, wo ich „Separator“ nach Versteck haben:

//Store 
column10.setCellFactory(column -> { 
    return new TableCell<Anfrage, Terminals>() { 
     @Override 
     protected void updateItem(Terminals item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getStore());      
      } 
     }         
    };      
}); 

Einige Bilder zu erklären, was eigentlich falsch ist. Before hiding After hiding

Wenn ich auf „true“ wieder every sichtbar gesetzt funktioniert wie erwartet - alle Spalten in es ohne „Separatoren“ sind überall.

Vielen Dank für einen Hinweis!

Antwort

1

Endlich ist die Tabellenansicht-Aktualisierung in JavaFX 8u60 beendet. Jetzt "native" table.refresh() den Trick machen.