Wie Sie neue Daten korrekt zu TableView hinzufügen und zu diesem scrollen

8

Problem

Ich möchte Daten dynamisch zu einem TableView hinzufügen und zur Position der neuen Daten blättern. Aber wenn die Zeilen in der TableView die ViewPort-Größe erreichen, bekomme ich das in der Konsole:

  

Apr 18, 2015 9:14:34 AM com.sun.javafx.scene.control.skin.VirtualFlow   addTrailingCells INFO: Der Index überschreitet maxCellCount. Überprüfen Sie die Größe   Berechnungen für die Klasse javafx.scene.control.TableRow

Ich denke, ich habe etwas falsch gemacht. Alles was ich getan habe, war das Oracle TableView Beispiel und füge folgendes hinzu:

%Vor%

Das gleiche passiert, wenn Sie

verwenden %Vor%

anstelle der Änderung der Liste.

Der Schuldige ist die Methode scrollTo. Dieselben Informationen / Fehler treten auf, wenn Sie den Zeilenindex mit der Methode scrollTo verwenden.

Frage

Wie fügen Sie einem TableView neue Elemente korrekt hinzu, sodass die Info / der Fehler nicht angezeigt wird?

Code

Hier ist ein vollständiges Beispiel. Der Tisch ist bereits ausgefüllt. Wenn Sie die Schaltfläche Hinzufügen drücken, wird die Größe des Darstellungsbereichs erreicht und die Info (oder der Fehler?) Wird in der Konsole angezeigt.

%Vor%     
Roland 18.04.2015, 07:21
quelle

3 Antworten

0

Unterdrücken Sie die Warnung, indem Sie den Protokollmanager zurücksetzen:

%Vor%

Dies wirkt sich auf den Logger der gesamten Anwendung aus. Wenn dies nicht gewünscht ist, ändern Sie den Protokolliergrad für die betroffene Klasse ( com.sun.javafx.scene.control.skin.VirtualFlow ) in Level.OFF .

Siehe auch:

Da dies eine Warnmeldung ist, kann sie wahrscheinlich ignoriert und daher unterdrückt werden. Soweit ich das beurteilen kann, wird die neue Zeile erfolgreich hinzugefügt. Hier ist der beanstandete Code, der eingecheckt wurde, der, IMO, das Prinzip der geringsten Verwunderung verletzt:

Dave Jarvis 05.01.2017 02:31
quelle
-1

Ich finde keine Lösung, aber das Problem ist nicht ScrollTo () -Methode zu verwenden, es ist immer passiert, wenn Sie nach unten scrollen (auch manuell) und erhöhen Sie die Fensterhöhe, wenn die Rolle verschwinden, ich weiß nicht, warum müssen Öffnen Sie ein Fehlerticket

    
mikl 15.05.2016 11:22
quelle
-1

Ich hatte diese Warnung vor, aber Sie müssen sich keine Sorgen machen darüber, wie erwähnt hier :

  

Dies geschieht, wenn die maximale Anzahl an zusätzlichen Zellen dies tun sollte   Sie können immer in das Ansichtsfenster passen, wenn jede Zelle eine Höhe von 1 hat.   Wenn der Index diese Anzahl überschreitet, wird der Offset nicht schnell erhöht   genug oder überhaupt, was bedeutet, dass etwas mit der Zelle nicht stimmt   Größenberechnung ( in Zeile 2.48: )

Dies könnte durch uns verursacht werden , weil wir schneller scrollen als der durchschnittliche Nutzer oder andere Dinge im RC-Code und in Ihrem Beispiel table.scrollTo( person); scrollt noch schneller , besonders wenn Sie viele Zeilen hatten.

    
Malek Boubakri 11.11.2015 16:49
quelle

Tags und Links