JavaFX

Table, sichtbare Zeilen ermitteln

Um zu ermitteln, welche Zeilen in der Tabelle sichbar sind, kann folgender Code verwendet werden:


public int[] getVisibleRange(TableView table) {
   TableViewSkin<?> skin = (TableViewSkin) table.getSkin();
   if (skin == null) {
      return new int[] {0, 0};
   }
   VirtualFlow<?> flow = (VirtualFlow) skin.getChildren().get(1);
   int indexFirst;
   int indexLast;
   if (flow != null && flow.getFirstVisibleCellWithinViewPort() != null 
       && flow.getLastVisibleCellWithinViewPort() != null) {
      indexFirst = flow.getFirstVisibleCellWithinViewPort().getIndex();
      if (indexFirst >= table.getItems().size()) 
         indexFirst = table.getItems().size() - 1;
      indexLast = flow.getLastVisibleCellWithinViewPort().getIndex();
      if (indexLast >= table.getItems().size())
         indexLast = table.getItems().size() - 1;
   } else {
      indexFirst = 0;
      indexLast = 0;
   }
   return new int[] {indexFirst, indexLast};
}


Der Aufruf:

int[] range = getVisibleRange();
System.out.println("Der Index der ersten sichbaren Zeile lautet: " + range[0];
System.out.println("Der Index der zweiten sichbaren Zeile lautet: " + range[1];



Stichworte:

JavaFX Table, TableView, sichtbare Zeilen, Beispiel, visible rows

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007